Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4...

39
Programmazione II Lezione 4 Daniele Sgandurra [email protected] 29/10/2010 1/39 Programmazione II Lezione 4 29/10/2010

Transcript of Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4...

Page 1: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Programmazione IILezione 4

Daniele Sgandurra

[email protected]

29/10/2010

1/39 Programmazione II Lezione 4 29/10/2010

Page 2: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Sommario

1 Esercizi

2 Panoramica della Programmazione Ad OggettiParadigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

3 Esercitazione: Installare il Java Development KitJava Development Kit

2/39 Programmazione II Lezione 4 29/10/2010

Page 3: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercizi

Parte I

Esercizi

3/39 Programmazione II Lezione 4 29/10/2010

Page 4: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercizi

Esercizio 1

Si consideri la seguente grammatica:

G = ({E , T , A, I}, {a, b, +, ∗,−, (, )}, R, E), dove R e l’insieme delle

produzioni:

E → T | T + E | T - E;T → A | E * T;A → I | -A | ( E );I → a | b | Ia | Ib;

Si mostri, tramite un esempio, che G e ambigua.

4/39 Programmazione II Lezione 4 29/10/2010

Page 5: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercizi

Esercizio 2

Scrivere la grammatica per generare il linguaggio delle parentesi bilanciate.Quindi, mostrare la derivazione (destra) per la stringa ()((()())).

5/39 Programmazione II Lezione 4 29/10/2010

Page 6: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercizi

Esercizio 3

Nelle grammatiche regolari (chiamate anche lineari) nel lato destro di ogniproduzione compare al piu un solo non-terminale; sono dette lineari destre se ilnon-terminale compare a destra del terminale.

N → tM;N → t;

Utilizzando una grammatica lineare destra generare il linguaggio:

{anbcdm | n ≥ 0, m ≥ 0}

6/39 Programmazione II Lezione 4 29/10/2010

Page 7: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Parte II

Panoramica della Programmazione Ad Oggetti

7/39 Programmazione II Lezione 4 29/10/2010

Page 8: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Paradigmi di Programmazione

Programmazione non strutturata.

Programmazione procedurale.

Programmazione modulare.

Programmazione ad oggetti.

8/39 Programmazione II Lezione 4 29/10/2010

Page 9: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Programmazione Non Strutturata

Il programma e costituito da un unico blocco di codice detto “main” dentro ilquale vengono manipolati i dati in maniera totalmente sequenziale.

9/39 Programmazione II Lezione 4 29/10/2010

Page 10: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Programmazione Procedurale

Il concetto base e quello di raggruppare i pezzi di programma ripetuti inporzioni di codice (le procedure) utilizzabili e richiamabili ogni volta che se nepresenti l’esigenza. Il programma e costituito da un unico file.

10/39 Programmazione II Lezione 4 29/10/2010

Page 11: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Programmazione Modulare

Le procedure aventi un dominio comune (ad esempio, procedure che eseguonooperazioni matematiche) vengono raggruppate in moduli separati. Ilprogramma e costituito da piu file.

11/39 Programmazione II Lezione 4 29/10/2010

Page 12: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Programmazione Orientata agli Oggetti

Object Oriented Programming (OOP): esistono un insieme di oggetti cheinteragiscono scambiandosi messaggi, ognuno dei quali mantiene il propriostato e dati.

12/39 Programmazione II Lezione 4 29/10/2010

Page 13: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Motivazioni

Migliorare la qualita del software.

I programmi di grandi dimensioni vengono scomposti in moduli (oggetti).

Ne trae beneficio la fase di manutenzione.

Riutilizzo del codice.

13/39 Programmazione II Lezione 4 29/10/2010

Page 14: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Oggetti

Cos’e un oggetto?

Es. (vita reale): un’automobile, un computer, un telefono, etc.

Un oggetto puo essere definito elencando sia le sue caratteristiche sia isuoi comportamenti, cioe le funzioni che mette a disposizione.

Elencando le caratteristiche e i comportamenti, diamo una definizionegenerica.

Un oggetto pero e un’entita particolare, con le sue caratteristichespecifiche.

14/39 Programmazione II Lezione 4 29/10/2010

Page 15: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Esempio

Ad un preciso oggetto assegniamo un nome: ad esempio, un oggetto dellaclasse automobile e chiamato auto1.

L’oggetto auto1 puo essere descritto:

Velocita = 160.Colore = grigio.Numero di porte = 5.Marca = Toyota.

Un altro oggetto auto2 puo avere le seguenti caratteristiche:

Velocita = 140.Colore = nero.Numero di porte = 3.Marca = Fiat

Gli oggetti sono diversi a seconda del valore assunto dalle lorocaratteristiche, ma condividono la stessa struttura.

15/39 Programmazione II Lezione 4 29/10/2010

Page 16: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Terminologia

Le caratteristiche di un oggetto sono chiamate attributi, i comportamentisono chiamati metodi.

I metodi sono le operazioni che un oggetto e in grado di compiere.

Un oggetto = attributi + metodi.

16/39 Programmazione II Lezione 4 29/10/2010

Page 17: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Classi

Possono esistere piu oggetti che hanno gli stessi attributi, anche convalori diversi, e che dispongono degli stessi metodi. Si dice che questioggetti appartengono alla stessa classe.

Una classe specifica gli attributi, senza indicarne il valore, e i metodi chedevono avere gli oggetti che appartengono alla classe.

La classe permette di creare vari oggetti aventi gli stessi attributi e glistessi metodi. Gli oggetti creati a partire da una classe vengono chiamatiistanze della classe.

Due istanze della stessa classe sono distinguibili solo per il valore dei loroattributi, mentre il loro comportamento (metodo) rimane lo stesso.

17/39 Programmazione II Lezione 4 29/10/2010

Page 18: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Struttura di una Classe

18/39 Programmazione II Lezione 4 29/10/2010

Page 19: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Esempio

19/39 Programmazione II Lezione 4 29/10/2010

Page 20: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Interazione Tra Oggetti

Un programma ad oggetti e composto da tanti oggetti che comunicano einteragiscono tra loro.

L’interazione tra gli oggetti avviene con un meccanismo chiamatoscambio di messaggi.

Un oggetto, inviando un messaggio ad un altro oggetto, puo richiederel’esecuzione di un metodo.

Un oggetto puo interagire con un altro oggetto per diversi motivi: permodificarne lo stato, per richiedere un’informazione o per attivare uncomportamento.

20/39 Programmazione II Lezione 4 29/10/2010

Page 21: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Messaggio

Un messaggio e costituito da 3 parti:

1 un destinatario, cioe l’oggetto verso il quale il messaggio e indirizzato;

2 il metodo che si vuole attivare, che deve essere uno dei metodi messi adisposizione dall’oggetto destinatario;

3 l’insieme dei parametri che vengono passati all’oggetto quando si richiedel’attivazione del metodo.

21/39 Programmazione II Lezione 4 29/10/2010

Page 22: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Esempio

Supponiamo di aver definito una classe automobile e una classe autista:

un oggetto autista1 (istanza della classe autista) per inviareall’oggetto auto1 (istanza della classe automobile) il messaggio cherichiede di aumentare la velocita scrive il messaggioauto1.accelera(60).

22/39 Programmazione II Lezione 4 29/10/2010

Page 23: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Incapsulamento

Con il termine incapsulamento si indica la proprieta degli oggetti diincorporare al loro interno sia gli attributi che i metodi, cioe lecaratteristiche e i comportamenti dell’oggetto.

Tutto cio che si riferisce ad un certo oggetto e racchiuso all’interno

dell’oggetto stesso:

gli attributi e i metodi sono incapsulati nell’oggetto.

23/39 Programmazione II Lezione 4 29/10/2010

Page 24: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Interfaccia

Un oggetto puo essere utilizzato inviando ad esso i messaggi. L’insiemedei messaggi, che consentono l’interazione con gli oggetti, rappresenta lasua interfaccia.

L’interfaccia e costituita dall’elenco dei metodi identificati dal loro nome.Per ogni metodo sono specificati anche il numero e il tipo dei parametri eil tipo di ritorno del metodo.

Chi utilizza l’oggetto ha bisogno di conoscere solo la sua interfaccia: qualimetodi possono essere invocati, quali sono i parametri da passare e quali itipi di ritorno.

24/39 Programmazione II Lezione 4 29/10/2010

Page 25: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Accesso Agli Attributi

Anche gli attributi sono nascosti nell’oggetto.

Per poter leggere o modificare il valore di un attributo, e preferibileutilizzare un metodo che esegue l’operazione richiesta.

Ad esempio, per conoscere il valore della velocita dell’oggetto auto1

possiamo usare il seguente messaggio: auto1.leggiVel().

Questo garantisce l’information hiding, ma comporta che per ogniattributo dell’oggetto siano definiti il metodo per leggere e il metodo permodificare il proprio valore.

Alcuni linguaggi consentono di manipolare direttamente gli attributi:

es, auto1.vel;questa modalita di accesso agli attributi viola la regoladell’information hiding: infatti, gli attributi non restano piu nascostiall’interno dell’oggetto;“vantaggio” di poter manipolare gli attributi senza usare i messaggi.

25/39 Programmazione II Lezione 4 29/10/2010

Page 26: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Ereditarieta

L’ereditarieta e lo strumento che permette di costruire nuove classiutilizzando quelle gia sviluppate.

Quando una classe e creata attraverso il meccanismo di ereditarieta apartire da un’altra classe, essa riceve in eredita tutti gli attributi e imetodi della classe generatrice.

La classe che e stata derivata da un’altra tramite il meccanismodell’ereditarieta prende il nome di sottoclasse. La classe generatrice diuna sottoclasse si chiama sopraclasse.

Queste relazioni tra le classi individuano una gerarchia che nasce da un

processo di specializzazione:

le classi che si trovano in cima alla gerarchia sono le piu generali eman mano che si scende si trovano classi piu specializzate.

26/39 Programmazione II Lezione 4 29/10/2010

Page 27: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Esempio

27/39 Programmazione II Lezione 4 29/10/2010

Page 28: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Ereditarieta

La sottoclasse eredita dalla sopraclasse tutti gli attributi e tutti i metodicon la possibilita di aggiungere nuove proprieta.

La nuova classe si differenzia dalla sopraclasse:

per estensione, quando la sottoclasse aggiunge nuovi attributi emetodi che si sommano a quelli ereditati;per ridefinizione, quando la sottoclasse ridefinisce i metodi ereditati,viene cioe data un’implementazione diversa di un metodo

28/39 Programmazione II Lezione 4 29/10/2010

Page 29: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Tipi di Ereditarieta

Esistono due tipi di ereditarieta:

singola;

multipla.

29/39 Programmazione II Lezione 4 29/10/2010

Page 30: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Ereditarieta Singola

Una sottoclasse deriva da un’unica sopraclasse.

30/39 Programmazione II Lezione 4 29/10/2010

Page 31: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Ereditarieta Multipla

Una classe deriva da due (o piu) sopraclassi.

31/39 Programmazione II Lezione 4 29/10/2010

Page 32: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Polimorfismo

Uno stesso oggetto puo avere piu tipi.

Polimorfismo ad hoc (overloading).

Polimorfismo universale:

parametrico;di sottotipo (inclusione).

32/39 Programmazione II Lezione 4 29/10/2010

Page 33: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Panoramica della Programmazione Ad Oggetti

Paradigmi di ProgrammazioneOggetti e ClassiIncapsulamentoEreditarietaPolimorfismo

Esempio (Overloading)

Tutti i veicoli a motore possiedono il metodo accelera:

le sottoclassi automobile e moto ereditano il metodo accelera, e loridefiniscano per adeguarlo alle loro esigenze:

nell’automobile si manifestera con la pressione del pedale;nella moto e implementato con il movimento della manopola.

queste due diverse implementazioni mettono in evidenza l’aspettopolimorfico del metodo accelera.

Durante l’esecuzione del programma, un’istanza della classe veicoli amotore puo rappresentare sia un’automobile che una moto.

Non e possibile sapere, staticamente, se si tratta di un’automobile o diuna moto.

Il collegamento dinamico garantisce che, richiamando il metodo, tra tuttele implementazioni sia scelta quella corretta che corrisponde all’oggettointeressato.

33/39 Programmazione II Lezione 4 29/10/2010

Page 34: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit

Parte III

Esercitazione: Installare il Java Development Kit

34/39 Programmazione II Lezione 4 29/10/2010

Page 35: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit Java Development Kit

Installare il Java Development Kit

In http://www.oracle.com/technetwork/java/javase/downloads/index.html selezionare “Download JDK”.

35/39 Programmazione II Lezione 4 29/10/2010

Page 36: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit Java Development Kit

Installare il Java Development Kit

Selezionare il sistema operativo e proseguire.

36/39 Programmazione II Lezione 4 29/10/2010

Page 37: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit Java Development Kit

Installare il Java Development Kit

Scaricare l’eseguibile.

37/39 Programmazione II Lezione 4 29/10/2010

Page 38: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit Java Development Kit

Installare il Java Development Kit

Installarlo:

$ chmod +x jdk-6u22-linux-i586.bin

$ sudo ./jdk-6u22-linux-i586.bin

Aggiungere al path la directory contenente i binari; ad es. aggiungere in~/.bashrc:

export PATH=/usr/lib/jvm/java-6-sun-1.6.0.22/bin:$PATH

Per vedere se l’installazione e andata a buon fine, controllare la versione:

$ java -version

java version "1.6.0_22"

Java(TM) SE Runtime Environment (build 1.6.0_22-b04)

Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)

38/39 Programmazione II Lezione 4 29/10/2010

Page 39: Programmazione II - Lezione 4groups.di.unipi.it/~daniele/teaching/pr2-10/pr2-04.pdf · Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 29/10/2010 1/39 Programmazione II Lezione

Esercitazione: Installare il Java Development Kit Java Development Kit

Scrivere, Compilare, Eseguire il Primo Programma da Shell

Creare e aprire un file Hello.java con un editor di testo, ad es.:

$ emacs Hello.java

Scrivere il seguente programma:

1 p u b l i c c l a s s Hello

2 {3 p u b l i c s t a t i c v o i d main ( String [ ] args )4 {5 System . out . println ( ” H e l l o World ! ” ) ;6 }7 }

Compilare il programma:

$ javac Hello.java

Eseguire il programma:

$ java Hello

Hello World!39/39 Programmazione II Lezione 4 29/10/2010