La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Java 5 (Tiger) Programmazione Object Oriented Le basi del linguaggio.

Presentazioni simili


Presentazione sul tema: "Java 5 (Tiger) Programmazione Object Oriented Le basi del linguaggio."— Transcript della presentazione:

1 Java 5 (Tiger) Programmazione Object Oriented Le basi del linguaggio

2 Bibliografia Manuale di Java 6, autore: Claudio De Sio Cesari, editore: Hoepli

3 Editor EJEeditor Java open source creato da Claudio De Sio Cesari: Semplice da utilizzare, intuitivo, e non richiede prerequisiti particolari Scaricabile gratuitamente da: Eclipse: Scaricabile gratuitamente da:

4 Convenzioni di scrittura Courier New Stile utilizzato per scrivere parti di codice di Java javac Pippo.java stile è utilizzato per le frasi che appaiono nella console

5 Organizzazione file raccogliere in ununica cartella di lavoro, tutti gli esercizi (almeno inizialmente) crearsi una cartella nella directory C:\, e chiamarla per esempio CorsoJava Tutte le volte salvare i file creati sulla chiavetta USB

6 Le basi del linguaggio Concetti fondamentali del linguaggio quali: classi, oggetti, metodi, operatori, costruttori e costrutti di controllo. Passi che servono per creare applicazioni Java. La storia, le caratteristiche, lambiente di sviluppo. Consultazione della documentazione ufficiale. Obiettivo: possedere tutte le carte in regola per iniziare a programmare in Java.

7 Unità 1 Obiettivi 1.Saper definire il linguaggio di programmazione Java e le sue caratteristiche. 2.Interagire con lambiente di sviluppo: il Java Development Kit 3.Saper digitare, compilare e mandare in esecuzione una semplice applicazione

8 Cosè JAVA? (1.1) Java è un linguaggio orientato agli oggetti (object oriented), ovvero supporta i paradigmi dellincapsulamento, dellereditarietà e del polimorfismo. Inoltre si tratta di un linguaggio in continua evoluzione

9 Breve storia di Java (1.1) Java ha visto la luce a partire da ricerche effettuate alla Stanford University allinizio degli anni Novanta. Già in questo Java si differenzia da molti altri importanti linguaggi, nati per volere di una multinazionale allo scopo di conquistare nuove fette di mercato. Nello sviluppo di Java ci si impose invece di creare un super-linguaggio che superasse i limiti e i difetti di altri linguaggi. Più semplicemente ci si impose di creare il linguaggio ideale.

10 1995: Nasce ufficialmente JAVA. Per la verità non si trattava di uno strumento molto performante, ma la sua nascita dimostrò al mondo che con Java si poteva iniziare a programmare per Internet. Nel nuovo millennio la tecnologia Java ha conquistato nuove nicchie di mercato come le smart card, i telefoni cellulari e il digitale terrestre. Queste conquiste sono sicuramente state un successo. Java ha infatti dato un grosso impulso alla diffusione di questi beni di consumo negli ultimi anni.

11 Libreria e standardizzazione (1.1) Java possiede unenorme libreria di classi standard, ottimamente documentate. Ciò rende Java un linguaggio di alto livello e permette anche ai neofiti di creare applicazioni complesse in breve tempo. Per esempio, è piuttosto semplice gestire finestre di sistema (interfacce grafiche utente), collegamenti a database e connessioni di rete. E questo indipendentemente dalla piattaforma su cui si sviluppa. Inoltre, grazie alle specifiche di Sun, non esisteranno per lo sviluppatore problemi di standardizzazione, come compilatori che compilano in modo differente.

12 Indipendenza dallarchitettura (1.1) Grazie al concetto di macchina virtuale ogni applicazione, una volta compilata, potrà essere eseguita su una qualsiasi piattaforma (per esempio un PC con sistema operativo Windows o una workstation Unix). Questa è sicuramente la caratteristica più importante di Java. Infatti, nel caso in cui si debba implementare un programma destinato a diverse piattaforme, non ci sarà la necessità di doverlo convertire radicalmente da questa a quella. E evidente quindi che la diffusione di Internet ha favorito e favorirà sempre di più la diffusione di Java.

13 Java Virtual Machine (JVM) (1.1) Software che svolge un ruolo da interprete per le applicazioni Java: -Si scrive il programma in Java (file sorgente) -Lo si compila ( file in linguaggio "bytecode") -La JVM interpreta il bytecode ed facendo sì che il nostro programma possa andare in esecuzione. Da quando ha visto la luce Java, i browser più diffusi implementano al loro interno una versione della JVM, capace di mandare in esecuzione le applet Java.

14 Si parla di "macchina virtuale" perché in pratica questo software è stato implementato per simulare un hardware. Si potrebbe affermare che il linguaggio macchina sta ad un computer come il bytecode sta ad una Java Virtual Machine. Oltre che permettere lindipendenza dalla piattaforma, la JVM permette a Java di essere un linguaggio multithreaded (caratteristica di solito tipica dei sistemi operativi), ovvero capace di mandare in esecuzione più processi in maniera parallela. Inoltre offre meccanismi di sicurezza molto potenti, la "supervisione" del codice da parte del Garbage Collector, validi aiuti per gestire codice al runtime e tanto altro…

15 Ambiente di sviluppo (1.2) Per scrivere un programma Java, abbiamo bisogno di: 1.Un programma che permetta di scrivere il codice, cioè un Editor Notepad, EJE, Eclipse, Jcreator 2.Il Java Development Kit versione Standard Edition (da ora in poi JDK). E scaricabile gratuitamente sul sito di riferimento dello sviluppatore Java: con le relative note dinstallazione e documentazione. Il JDK offre tutto l'occorrente per lavorare in modo completo. Infatti implementa una suite di applicazioni, come un compilatore, una JVM, un formattatore di documentazione, un'altra JVM per interpretare applet, un generatore di file JAR (Java ARchive) e così via.

16 Comandi base per interagire con la riga di comando di Windows (1.2) Il sistema operativo Dos, non ha interfaccia grafica a finestre. Per navigare tra le cartelle, o per fare un qualsiasi altro tipo di operazione sui file, bisogna digitare un comando. Ogni comando descritto deve essere seguito dalla pressione del tasto invio (enter) sulla tastiera, per avere effetto.

17 ComandoSpiegazione cd nomeCartellaSpostamento in una cartella contenuta nella cartella in cui ci si trova cd..Spostamento nella cartella che contiene la cartella in cui ci si trova. dirLista il contenuto della cartella in cui ci si trova con un allineamento verticale dir/wLista il contenuto della cartella in cui ci si trova con un allineamento orizzontale. dir/pLista il contenuto della cartella in cui ci si trova con un allineamento verticale. Se i file da listare eccedono la disponibilità visiva della finestra vengono visualizzati solo i primi file che rientrano nella prima finestra. Alla pressione di un qualsiasi ulteriore tasto, il sistema visualizzerà la schermata successiva. control c(pressione del tasto ctrl contemporaneamente al tasto c) Interrompe il processo in corso (utile nel caso di processo con ciclo di vita infinito).

18 Installazione del Java Development Kit (JDK) (1.2) 1.Scaricare il JDK Standard Edition da 2.Scaricare anche la documentazione (si tratta di un file.zip). 3.Impostare la variabile dambiente PATH, facendola puntare alla cartella bin del JDK: per i sistemi Windows 2000/XP/NT, eseguire i seguenti passi: – Tasto destro su Risorse del Computer, fare clic su Proprietà. – Selezionare il tab Avanzate e cliccare su Variabili dambiente. – Tra le Variabili di sistema (o se preferite tra le Variabili utente), selezionare la variabile PATH e fare clic su Modifica. – Spostarsi nella casella Valore variabile e portarsi con il cursore alla fine della riga. – Se non cè già, aggiungere un ;. – Infine aggiungere il percorso alla cartella bin del JDK, che dovrebbe essere simile a : C:\programmi\java\jdk1.6.0\bin 4.Fare clic su OK e linstallazione è terminata.

19 Struttura del JDK (1.2) Il JDK (o J2SE) è formato da diverse cartelle: bin: contiene tutti i file eseguibili del JDK, ovvero javac, java, jar, appletviewer etc… demo: contiene varie dimostrazioni di cosa è possibile fare con Java. include e lib: contengono librerie scritte in C e in Java che sono utilizzate dal JDK. jre: sta per Java Runtime Environment (JRE). Affinché unapplicazione Java risulti eseguibile su una macchina, basta installare solo il JRE. Si tratta della JVM con il supporto per le librerie supportate nella versione corrente di Java. Il JRE viene installato in questa cartella automaticamente, quando viene installato il JDK. docs: questa cartella deve essere scaricata ed installata a parte e contiene la documentazione della libreria standard di Java, più vari tutorial. Risulterà indispensabile. Nella cartella principale, oltre a vari file di servizio (licenza, copyright etc…) ci sarà anche un file di nome src.zip. Una volta scompattato src.zip, sarà possibile dare uno sguardo ai file sorgenti (i.java) della libreria.

20 Passi dello sviluppatore (1.2) 1.Scrittura del codice Scrivere il codice sorgente dell applicazione utilizzando un editor. Blocco Note di Windows va benino per adesso. 2.Salvataggio Salvare il nostro file con suffisso.java N.B. Se si utilizza Notepad bisogna salvare il file chiamandolo nomeFile.java ed includendo il nome tra virgolette, come in "nomeFile.java". Lutilizzo delle virgolette non è invece necessario per salvare file con EJE. Non è necessario neanche specificare il suffisso.java di default. 3.Compilazione Aprire un Prompt di Dos (prompt dei comandi). Da questo prompt dobbiamo spostarci nella cartella in cui è stato salvato il nostro file sorgente e compilarlo tramite il comando: javac nomeFile.java Se la compilazione ha esito positivo, verrà creato un file chiamato nomeFile.class. In questo file, come abbiamo già detto, ci sarà la traduzione in bytecode del file sorgente. 4.Esecuzione Scrivere dal prompt Dos il seguente comando: java nomeFile Notare che nomeFile è senza suffissi. Lapplicazione, a meno di errori di codice, verrà eseguita dalla JVM.

21 Primo approccio al codice (1.3) Applicazione: CiaoATutti Il fine di questa applicazione è stampare a video il messaggio Ciao a tutti! Listato 1 public class CiaoATutti 2 { 3 public static void main(String args[]) 4 { 5 System.out.println(Ciao a tutti!"); 6 } 7 } N.B. Il file va salvato col nome della sua classe e quindi, in questo caso, col nome CiaoATutti.java

22 Analisi del programma CiaoATutti (1.3) Riga 1 1 public class CiaoATutti Dichiarazione della classe CiaoATutti. Come vedremo, ogni applicazione Java è costituita da classi. Tutto il codice scritto in applicazioni Java, a parte poche eccezioni (le importazioni di librerie e le dichiarazioni dappartenenza ad un package), è sempre incluso allinterno della definizione di qualche classe (o strutture equivalenti come le interfacce). In seguito capiremo il significato della parola chiave public anteposta alla classe.

23 Righe 2 e 7 2 { … 7 } Questa coppia di parentesi graffe racchiude il blocco di codice che definisce la classe CiaoATutti. Sulle tastiere italiane non esiste un tasto per stampare le parentesi graffe. Possiamo però ottenerne la scrittura in diversi modi, di seguito i più utilizzati: – tenendo premuto il tasto ALT e scrivendo 123 (125) con i tasti numerici che si trovano sulla destra della vostra tastiera, per poi rilasciare lALT; – tenendo premuti i tasti CONTROL - SHIFT - ALT, e poi il tasto con il simbolo della parentesi quadra aperta "[ o della parentesi quadra chiusa ]

24 Riga 3 3 public static void main(String args[]) Questa riga deve essere definita in ogni applicazione Java: Trattasi della dichiarazione del metodo main(). In Java, il termine metodo è sinonimo di azione (i metodi saranno trattati in seguito). In particolare il metodo main() definisce il punto di partenza dellesecuzione di ogni programma. La prima istruzione che verrà quindi eseguita in fase di esecuzione, sarà quella che la JVM troverà subito dopo lapertura del blocco di codice che definisce questo metodo. Oltre alla parola "main", la riga 3 contiene altre parole di cui studieremo in dettaglio il significato in seguito. Per adesso il lettore si dovrà accontentare della seguente tabella:

25 public Modificatore del metodo. I modificatori sono utilizzati in Java come nel linguaggio umano sono utilizzati gli aggettivi. Se si antepone un modificatore alla dichiarazione di un elemento Java (un metodo, una variabile, una classe etc...), questo cambierà in qualche modo (a seconda del significato del modificatore) le sue proprietà. In questo caso, trattasi di uno specificatore daccesso che rende di fatto il metodo accessibile anche al di fuori della classe in cui è stato definito. static Altro modificatore del metodo. La definizione di static è abbastanza complessa. E essenziale per la definizione del metodo main(). void E il tipo di ritorno del metodo. Significa "vuoto" e quindi questo metodo non restituisce nessun tipo di valore. Il metodo main() non deve mai avere un tipo di ritorno diverso da void. main Nome o identificatore del metodo (String args[]) Alla destra dellidentificatore di un metodo: coppia di parentesi tonde che racchiude opzionalmente una lista di parametri (detti anche argomenti del metodo). Il metodo main() vuole sempre come parametro un array di stringhe. Args è lidentificatore (nome) dellarray, ed è lunica parola che può variare nella definizione del metodo main(), anche se per convenzione si utilizza sempre args.

26 Righe 4 e 6 4 { … 6 } Questa coppia di parentesi graffe racchiude il blocco di codice che definisce il metodo main.

27 Riga 5 5 System.out.println(Ciao a tutti!"); Comando che stamperà su schermo la scritta: Ciao a tutti! println() è un metodo che appartiene alla libreria standard di Java cui si deve passare tra parentesi () come parametro la stringa che dovrà essere stampata Il punto e virgola ; serve a concludere ogni statement (istruzione).

28 Salvare, compilare, eseguire (1.3) Salvare il nostro file in una cartella di lavoro, chiamata ad esempio "CorsoJava Il file va salvato con lo stesso nome (maisucolo e minuscolo compresi) della classe Aprire un prompt di Dos e spostarci allinterno della nostra cartella di lavoro Accertarsi che il file CiaoATutti.java esiste Compilare il file mediante il comando: javac CiaoATutti.java Se al termine della compilazione non ci viene fornito nessun messaggio derrore, vuol dire che la compilazione ha avuto successo. Notare che nella nostra cartella di lavoro è stato creato un file di nome CiaoATutti.class: il file sorgente tradotto in bytecode, pronto per essere interpretato dalla JVM. Mandare il programma in esecuzione mediante il comando: java CiaoATutti

29 Possibili messaggi di errore in fase di compilazione (1.3) javac: Command not found Il sistema operativo che non riconosce il comando "javac", il quale dovrebbe chiamare il compilatore del JDK. Probabilmente questultimo non è stato installato correttamente. Un tipico problema è di non aver impostato la variabile dambiente PATH CiaoATutti.java:5: cannot find symbol symbol : method printl(java.lang.String) location: class java.io.PrintStream System.out.printl("Ciao a tutti!"); ^ abbiamo semplicemente scritto printl in luogo di println. Il compilatore non può da solo accorgersi che è stato semplicemente un errore di battitura, ed allora ci ha segnalato che il metodo printl() non è stato trovato.

30 CiaoATutti.java:1: class or interface expected public Class CiaoATutti ^ Avremo scritto class con lettera maiuscola e quindi la JVM ha richiesto esplicitamente una dichiarazione di classe (o di interfaccia, concetto che chiariremo più avanti). Class NON E la stessa cosa di class in Java: Java è CASE SENSITIVE CiaoATutti.java:5: ';' expected System.out.println("Ciao a tutti!") ^ abbiamo dimenticato un punto e virgola, che serve a concludere ogni statement (istruzione). Purtroppo il nostro compilatore non sarà sempre così preciso. In alcuni casi, se dimentichiamo un punto e virgola, o peggio dimentichiamo di chiudere un blocco di codice con una parentesi graffa, il compilatore ci potrebbe segnalare lesistenza di errori inesistenti in successive righe di codice.

31 Possibili messaggi relativi alla fase di interpretazione (1.3) Exception in thread "main" java.lang.NoClassDefFoundError: CiaoATutti Caused by: java.lang.ClassNotFoundException: CiaoATutti at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Abbiamo definito male il metodo main(). Probabilmente: abbiamo dimenticato di dichiararlo static o public; abbiamo scritto male la lista degli argomenti (deve essere String args[]); abbiamo chiamato main il metodo.

32 Exception in thread "main" java.lang.NoClassDefFoundError: Ciao_ATutti Caused by: java.lang.ClassNotFoundException: Ciao_ATutti at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) In questo caso la JVM non trova la classe Java contenente il bytecode da interpretare. Infatti, come si può notare, è stato lanciato il comando "java Ciao_ATutti" invece di "java CiaoATutti "


Scaricare ppt "Java 5 (Tiger) Programmazione Object Oriented Le basi del linguaggio."

Presentazioni simili


Annunci Google