La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione “Object Oriented” Le basi del linguaggio

Presentazioni simili


Presentazione sul tema: "Programmazione “Object Oriented” Le basi del linguaggio"— Transcript della presentazione:

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

2 Bibliografia http://www.claudiodesio.com Manuale di Java 6,
autore: Claudio De Sio Cesari, editore: Hoepli

3 Editor EJE editor 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 un’unica 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, l’ambiente di sviluppo. Consultazione della documentazione ufficiale. Obiettivo: possedere tutte le carte in regola per iniziare a programmare in Java.

7 Unità 1 Obiettivi Saper definire il linguaggio di programmazione Java e le sue caratteristiche. Interagire con l’ambiente di sviluppo: il Java Development Kit 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 dell’incapsulamento, dell’ereditarietà 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 all’inizio 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
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 un’enorme 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 dall’architettura (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 l’indipendenza 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: Un programma che permetta di scrivere il codice, cioè un Editor Notepad, EJE, Eclipse, Jcreator 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 d’installazione 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 Comando Spiegazione cd nomeCartella
Spostamento in una cartella contenuta nella cartella in cui ci si trova cd.. Spostamento nella cartella che contiene la cartella in cui ci si trova. dir Lista il contenuto della cartella in cui ci si trova con un allineamento verticale dir/w Lista il contenuto della cartella in cui ci si trova con un allineamento orizzontale. dir/p 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)
Scaricare il JDK Standard Edition da Scaricare anche la documentazione (si tratta di un file .zip). Impostare la variabile d’ambiente 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 d’ambiente” . 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 Fare clic su “OK” e l’installazione è 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é un’applicazione 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)
Scrittura del codice Scrivere il codice sorgente dell’ applicazione utilizzando un editor. “Blocco Note” di Windows va benino per adesso. 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". L’utilizzo delle virgolette non è invece necessario per salvare file con EJE. Non è necessario neanche specificare il suffisso .java di default. 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. Esecuzione Scrivere dal prompt Dos il seguente comando: java nomeFile Notare che “nomeFile” è senza suffissi. L’applicazione, 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 d’appartenenza ad un package), è sempre incluso all’interno 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 l’ALT; 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 dell’esecuzione di ogni programma. La prima istruzione che verrà quindi eseguita in fase di esecuzione, sarà quella che la JVM troverà subito dopo l’apertura 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 static void main (String args[]) 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 d’accesso 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 dell’identificatore 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 è l’identificatore (nome) dell’array, ed è l’unica 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 all’interno 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 d’errore, 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 quest’ultimo non è stato installato correttamente. Un tipico problema è di non aver impostato la variabile d’ambiente 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 l’esistenza 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.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.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 "Programmazione “Object Oriented” Le basi del linguaggio"

Presentazioni simili


Annunci Google