Cosa fare prima di iniziare. Laboratorio Primo Impatto. Hello World. L editor

Documenti analoghi
public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.

Scrivere un programma in Java

2 - Introduzione al linguaggio Java

Appunti di Informatica 1

Programmare in Java. Olga Scotti

Struttura di un programma Java

Le command line di Java

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Introduzione alla programmazione in Java

Programmazione ad oggetti

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Fondamenti di programmazione in Java. Lezione III

Ingegneria del Software 1: Eclipse

Programmazione Orientata agli Oggetti in Linguaggio Java

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Eclipse. Avviare un progetto e compilare un semplice programma

Primi programmi in Java. Lezione IV

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Java: Compilatore e Interprete

Strumenti per la programmazione

Java Native Interface Appunti

Cosa è importante: pom.xml Goal Plug-in Repository

Programmazione. Programmare ad oggetti. Programmi e calcolatori. Focalizzazione del corso. Alcuni linguaggi famosi. Programmi e linguaggi

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Introduzione ad Eclipse

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Il linguaggio di programmazione JAVA

Programmazione Java. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 3. Alfonso Miola Settembre 2007

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Programmazione AA

un programma Java 2.1 Scrittura, compilazione ed esecuzione

PROGETTO LAUREE SCIENTIFICHE

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011.

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

I Java Java 2 SDK Istallazione di Java 2 SDK

Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world!

testo Saveris Web Access Software Istruzioni per l'uso

Java. Traditional portability (ideal)

IL LINGUAGGIO JAVA: CARATTERISTICHE

Installazione del Software. per lo Sviluppo di Applicazioni Java

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java

Corso Eclipse. Prerequisiti. 1 Introduzione

Gestione risorse (Windows)

Laboratorio di Architettura degli Elaboratori

Telematica II 2. Introduzione al JAVA

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

Tale attività non è descritta in questa dispensa

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

e l ambiente Info L 4 Le operazioni sui dati L 1 L ambiente di programmazione L 5 Le stringhe L 2 La struttura del codice

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Laboratorio di Informatica Lezione 4

Corso Programmazione 1 Capitolo 01: Concetti Elementari

PROCEDURA DI INSTALLAZIONE E ATTIVAZIONE DI DARWEB PRO versione 1.0

Java? Sì, grazie. Scopo del corso

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

INTRODUZIONE INTRODUZIONE JAVA JAVA

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

I comandi del DOS. Come si fornisce un comando al DOS

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Introduzione a classi e oggetti

Utilizzo delle classi

Manuale di configurazione e utilizzo Barcode card

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Esercitazione 4 JDBC

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Programmazione Orientata agli Oggetti in Linguaggio Java

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Java Virtual Machine

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13

Configurare TPTP in Eclipse e testare un applicazione

Linguaggio e Piattaforma Java

Gestione delle eccezioni in Java

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

Linguaggi e Laboratorio. Panoramica su Java

Informatica. Terzo anno Prof. A. Longheu

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Il sistema operativo UNIX/Linux. Gli script di shell

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Getting Started. Walter Cazzola. Dipartimento di Informatica e Comunicazione Università degli Studi di Milano

Alfabeto ed elementi lessicali del linguaggio C

La velocità di una carovana

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

Sorgenti, Binari e Pacchetti (Compilazione e pacchettizzazione per GNU/Linux)

Panoramica: che cosa è necessario

Il calcolatore. Architettura di un calcolatore (Hardware)

Scritto da assistenzafree.com Venerdì 25 Agosto :04 - Ultimo aggiornamento Lunedì 08 Febbraio :34

esercizi Esercizi / problemi

Introduzione al Python

Transcript:

Laboratorio Primo Impatto Scrivere un semplice programma Compilare Avviare la JVM Convenzioni sul codice Classi, oggetti, metodi Errori di compilazione Cosa fare prima di iniziare Effettuare il login scegliendo il sistema operativo preferito Localizzare la directory (cartella) in cui la J2SE SDK è installata Localizzare l editor con cui si vogliono editare i programmi (consigliato: Ginipad, ma in teoria va bene un qualsiasi editor per file di testo) Aprire l editor per cominciare a scrivere il primo programma Java 1 2 L editor Hello World Se si è scelto di usare Ginipad o altri editor evoluti e specializzati per Java (emacs, Jedit, l ambiente JavaBeans, bluej, eclipse,...) le operazioni di compilazione, correzione ed esecuzione dei programmi sono facilitate I programmi possono essere formattati automaticamente Le parole chiave e le componenti sintattiche sono evidenziate con colori diversi Familiarizzare bene con l editor e personalizzarlo (si legga l help in linea) Salvare in un file di nome Hello.java Compilare (tasto compile su Ginipad) Eseguire (tasto run su Ginipad) 3 4

Compilazione da riga di comando Alternativamente si può compilare e mandare in esecuzione un programma da una finestra di console/shell Da Windows: prompt dei comandi (o prompt di MSDOS) Da Linux: finestra di shell (bash, csh, tcsh,...) La variabile di ambiente PATH deve contenere il path alla cartella di installazione della SDK, sottocartella bin (es. PATH =... ;C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin\) Leggere l'help del sistema per modificare PATH Compilazione da riga di comando javac Hello.java Il compilatore è rimasto silenzioso e quindi la compilazione è andata a buon fine. Nella stessa directory del file sorgente (.java) apparirà il file compilato (.class) Il file compilato ha sempre lo stesso nome del sorgente, ma con estensione diversa (Hello.class) Il comando javac fa partire il compilatore Java sui file.java indicati di seguito nella linea di comando (in questo caso solo uno) 5 6 Avvio della Java Virtual Machine Guardiamo il programma java Hello Hello, World! Il comando java fa partire la JVM ed esegue il file bytecode Hello.class (non occorre specificare.class) Il programma stampa la riga Hello, World! ed esce Definisce una classe pubblica di nome Hello console Ogni file sorgente deve contentere una classe dichiarata public e si deve chiamare obbligatoriamente con il nome di questa classe e l'estensione.java (in questo caso Hello.java) 7 8

Nomi e lettere maiuscole/minuscole I nomi di classe, per convenzione: Devono sempre iniziare con lettera maiuscola Non devono contenere spazi Se contengono più parole, la nuova parola comincia con lettera maiuscola. Es: HelloWorld, InsiemeDiCaratteri, ContoPersonalizzato Java è case sensitive : le lettere maiuscole e minuscole sono considerati differenti: Helloworld HelloWorld Ancora convenzioni Le parole riservate Java (class, public, static, int,...) sono in lettere minuscole I nomi di altre entità diverse dalle classi (variabili, nomi di metodi, campi) devono iniziare per lettera minuscola Se sono formati da più parole, queste devono essere attaccate come per le classi Esempi: x, println, indicediascolto, sommadariportare,... 9 10 Indentazione Indentazione Le parole chiave e gli identificatori sono separati da spazi bianchi Spazi bianchi sono lo spazio, il tab, il newline n spazi bianchi equivalgono a uno Il compilatore non bada alla formattazione del testo del programma Il programmatore invece viene facilitato nella lettura/scrittura/modifica se il testo evidenzia la struttura logica del programma E importante fissare e seguire delle regole di indentazione (l editor le suggerisce) In Ginipad è possibile far indentare il sorgente automaticamente (Menu Tools -> Format) Comunque il compilatore compila anche questo: 11 12

Come NON va indentato un programma public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra // di console System.out.println ( Hello, World! ); Il compilatore lo compila lo stesso, ma un codice scritto in questo modo risulta altamente illeggibile class?? Una applicazione Java è, in generale, la definizione di un insieme di classi in diversi file con l'estensione.java Una classe si dichiara con la parola riservata class seguita dal nome della classe e da un blocco (tutto ciò che appare tra due parentesi graffe) Opzionalmente, prima della parola class è possibile inserire la parola public che indica che la classe è utilizzabile da tutti (chiariremo meglio in seguito) 13 14 Classi Definizione di una classe Una classe è, idealmente, la collezione di tutti i possibili oggetti che hanno le caratteristiche da lei definite Una classe è la definizione di un tipo a cui tutti gli oggetti della classe sono uniformati Una classe è una mera definizione La JVM utilizza questa definizione per creare e usare oggetti di quella classe Ogni oggetto della classe è diverso dagli altri oggetti della stessa classe, ma tutti hanno la stessa struttura (o tipo) public class NomeClasse {... All interno del blocco possono essere definiti Variabili istanza (dette anche campi) Metodi 15 16

Metodi Il metodo speciale main In questa particolare classe non ci sono variabili istanza Definisce un metodo di nome main Corpo del metodo: un altro blocco Ogni applicazione Java deve contenere almeno una classe pubblica con un metodo: Pubblico (parola chiave public) Statico (parola chiave static) Di nome main Che ha come parametro un array di stringhe: (String[] args) (il nome args del parametro non importa, può essere un nome qualsiasi, l importante è il tipo array di stringhe ) 17 18 Metodi Il metodo speciale main Un metodo contiene al suo interno una sequenza di istruzioni In generale i metodi operano su oggetti I metodi statici, come main, non operano su oggetti, ma si riferiscono a tutta una classe Un metodo può avere, in generale, zero o più parametri di ingresso (appaiono tra le parentesi tonde che seguono il nome) Per ogni parametro va indicato un tipo e un nome 19 Nel caso di main il parametro è un array (una sequenza) di stringhe che la JVM inizializza con le parole digitate sulla riga di comando, dopo java Hello, all invocazione del programma Il contenuto del metodo main della classe pubblica invocata dal comando java deve contenere la sequenza di istruzioni che fanno partire l'applicazione In genere si limita a creare oggetti e ad inizializzarli per poi passare il controllo ad altri 20

Commenti Commenti Commento al codice: ignorato dal compilatore I commenti nel codice sono parte integrante del programma anche se non sono considerati dal compilatore I commenti spiegano cosa fa il programma, il significato delle variabili, il comportamento dei metodi, ecc. È buonissima abitudine commentare il codice: esso risulta più leggibile da altri (e dallo stesso programmatore già qualche giorno dopo la sua scrittura) 21 22 Formato dei commenti Java Invocazione di un metodo Commento lungo una linea: // testo del commento Il compilatore ignora // e tutti i caratteri che seguono fino alla fine della linea È utile per i commenti corti Commento su più linee: /* testo del commento */ Il compilatore ignora tutto ciò che è compreso tra /* e il successivo */ Il metodo println viene invocato passandogli la stringa Hello, World!. Stampa la stringa sullo standard output 23 24

Invocazione di un metodo Uso dell operatore. Un metodo non statico deve essere sempre invocato su un certo oggetto In questo caso l oggetto è out, lo stream standard di caratteri in uscita associato al programma (normalmente è la finestra di console da cui è stato lanciato il programma, nel nostro caso la finestra in basso di Ginipad) L oggetto out è reperibile a partire dalla classe speciale System, inizializzata dalla JVM, contenente diversi campi statici che si riferiscono ad oggetti relativi al computer che si sta usando Per selezionare un campo statico da una classe: System.out = oggetto di tipo PrintStream Per selezionare un campo o per chiamare un metodo di un oggetto: System.out.println( Hello, World! ); println(string s) è un metodo definito nella classe PrintStream (inclusa nei packages della SDK) che invia i caratteri della stringa s, seguiti da un newline, sullo stream rappresentato dall oggetto su cui si invoca il metodo (in questo caso l oggetto System.out) 25 26 Stringhe Stringhe Una stringa è una sequenza finita di caratteri racchiusa da (doppie virgolette, Shift-2) Una stringa è un oggetto della classe String In Java il set di caratteri è Unicode (65536 caratteri dagli alfabeti di tutto il mondo) Sia gli identificatori che le stringhe possono contenere caratteri qualsiasi di Unicode Ciao \t Ciao \n\ Unicode \\u007d\ : \u007d Corrisponde a: Ciao Ciao Unicode \u007d : \t è il carattere tab, \n è il carattere a capo newline \u007d è una sequenza di escape che rappresenta il carattere Unicode corrispondente al numero esadecimale 007D = 125 decimale \ sono i doppi apici e \\ è il backslash I primi 128 caratteri Unicode corrispondono ai caratteri ASCII a 7 bit 27 28

Parametri Il metodo println della classe PrintStream viene invocato sull oggetto System.out con un parametro di tipo String (L oggetto della classe String corrispondente a Hello, World! è implicitamente creato scrivendo la stringa fra apici nel programma) Per la stessa classe di oggetti PrintStream sono definiti metodi di nome println che accettano anche un numero intero, un numero in virgola mobile, un carattere singolo, un intero oggetto! System.out.println(3+5); // Stampa 8 Errori di compilazione Proviamo a modificare il codice di Hello.java inserendo qualche imprecisione sintattica: System.ouch.println( Hello, World! ); 29 30 Errori di compilazione Errori di Compilazione javac Hello.java Hello.java:4: cannot resolve symbol symbol: variable ouch location: class java.lang.system System.ouch.println( Hello, World! ); ^ 1 error Il compilatore indica la riga (4) e il punto (^) in cui ha trovato errore e un breve messaggio sulla natura dello stesso Gli editor evoluti danno la possibilità di andare, cliccando sull errore, direttamente alla linea di codice incriminata Gli editor evoluti si accorgono degli errori di sintassi anche durante la scrittura del programma I colori delle diverse componenti sintattiche sono dei validi aiuti per prevenire gli errori durante la scrittura 31 32

Errori di compilazione Errori di compilazione System.out.println( Hello, World!); javac Hello.java Hello.java:4: unclosed string literal System.out.println( Hello, World!); ^ Hello.java:5: ) expected ^ 2 errors Il compilatore ha trovato due errori derivanti entrambi dall omissione del di chiusura e li segnala entrambi (dopo il primo errore trovato tenta di continuare ad interpretare il codice che segue) 33 34 Errori a runtime Errori a runtime javac Hello.java public static void Main(String[] args){ java Hello Exception in thread main java.lang.nosuchmethoderror: main Il compilatore non dà nessun errore Durante l esecuzione della JVM non viene trovato il metodo main della classe e quindi viene sollevata un eccezione (un meccanismo per la gestione degli errori che vedremo) che fa terminare il programma 35 36

Errori logici Errori logici System.out.println( Hell, World! ); javac Hello.java Il compilatore non ha trovato nessuna imperfezione sintattica nel programma Il programma stampa la riga: Hell, World! Questo tipo di errori non è rilevabile dal compilatore L unico, difficile, modo per trovarli (a parte che in casi semplici come questo) è quello di analizzare attentamente il programma magari con l aiuto di un debugger 37 38 Esercizi Esercizi Scrivere un programma che stampi il proprio nome in un rettangolo disegnato coi caratteri ASCII tipo +--------+ Luca +--------+ Scrivere un programma che stampi la scala +----+ +----+----+ +----+----+----+ +----+----+----+ 39 40

Esercizi Scrivere un programma che stampi tutti i caratteri Unicode dal 120 al 130 (decimali) Scrivere un programma che stampi la somma dei primi 10 numeri naturali Scrivere un programma che stampi il primo (args[0]) dei suoi argomenti della linea di comando. Mandarlo in esecuzione con zero, uno, due argomenti sulla linea di comando Scrivere un programma che generi un congruo numero di errori di compilazione a causa di un limitato numero di errori di digitazione 41