La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

UNITA DIDATTICA 3: GLI OGGETTI IN JAVA Fondamenti di Informatica Cristina Parisi DIC 2002 MODULO LINGUAGGIO JAVA.

Presentazioni simili


Presentazione sul tema: "UNITA DIDATTICA 3: GLI OGGETTI IN JAVA Fondamenti di Informatica Cristina Parisi DIC 2002 MODULO LINGUAGGIO JAVA."— Transcript della presentazione:

1 UNITA DIDATTICA 3: GLI OGGETTI IN JAVA Fondamenti di Informatica Cristina Parisi DIC 2002 MODULO LINGUAGGIO JAVA

2 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 PREREQUISITI Conoscenze di programmazione imperativa acquisite nella classe III nel corso di programmazione in C++ o altro linguaggio imperativo

3 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Competenze Alla fine dellu.d. lo studente deve essere in grado di: Definire le classi con attributi e metodi Applicare i principi della programmazione ad oggetti usando il linguaggio Java

4 Gli oggetti Le classi Metodi e attributi Passaggio di parametri Metodo costruttore Creazione ed uso degli oggetti UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 CONTENUTI

5 Lezione frontale Lezione dialogata Esercitazioni in laboratorio UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 METODOLOGIE

6 Libro di testo Appunti Presentazioni multimediali Computer UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 STRUMENTI

7 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 VERIFICA e VALUTAZIONE Verifica - test di verifica (a risposta multipla e risposta libera); - esercitazioni in laboratorio. Valutazione sarà effettuata una valutazione sommativa: - mostrare di aver acquisito le nozioni di base; - mostrare di aver maturato le competenze per la logica della programmazione ad oggetti.

8 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 TEMPI 2 settimane (12 ore): - 4 h lezione frontale - 4 h esercitazioni in laboratorio - 2 h verifica - 2 h chiarimenti e potenziamento

9 La struttura di un oggetto è descritta attraverso attributi e metodi attributi descrivono le caratteristiche, le proprietà statiche delloggetto metodi descrivono i comportamenti, le proprietà dinamiche delloggetto motocicletta ES. Considerando una motocicletta come oggetto, avremo: Attributi : casa_produttrice, modello, cilindrata, colore Metodi : accelera, frena, cambia_marcia UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Gli oggetti

10 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 La classe Possono esistere più oggetti che hanno stessi attributi (che possono assumere valori diversi) e stesse funzionalità. In questo caso gli oggetti appartengono alla stessa classe. Per classe sintende il contenitore logico di uno o più oggetti. Solo dopo aver creato la classe è possibile creare loggetto attraverso unistanza. Quindi a partire da una classe è possibile creare n oggetti, attraverso n istanze.

11 Esempio di oggetti istanze otocicletta ES. A partire da motocicletta con i seguenti attributi e metodi Attributi : casa_produttrice, modello, cilindrata, colore Metodi : accelera, frena, cambia_marcia Si possono avere i seguenti oggetti istanza Oggetto1: Yamaha, XT, 600, bianco Oggetto2: Honda, Africa_Twin,, 750, verde Oggetto3:Suzuki, DR, 650, blu UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002

12 class La struttura base per poter dichiarare una classe usa la parola chiave class, seguita dal nome della classe e dal suo contenuto racchiuso tra le parentesi graffe { }. Allinterno delle parentesi vengono dichiarati gli attributi e i metodi class { // attributi // metodi } Attraverso questa dichiarazione viene creato un nuovo tipo di dato. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Dichiarazione di una CLASSE

13 public = la classe può essere usata oltre che allinterno della libreria in cui è stata definita, anche al di fuori abstract = la classe è ancora incompleta e alcuni metodi sono astratti. Può essere usata per creare sottoclassi in cui vengono implementati metodi astratti. Inoltre non può essere istanziata UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Livelli di visibilità per le classi Durante la dichiarazione di una classe può essere indicato il livello di visibilità (per stabilire da quale punto del programma è possibile creare istanze della classe):

14 final = da questa classe non è possibile creare sottoclassi La parola chiave viene posta prima di class. Se non viene scritto niente la classe può essere usata da tutte le classi. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Livelli di visibilità per le classi

15 Gli attributi di una classe (detti anche variabili di istanza, poiché ogni oggetto possiede le proprie variabili) devono essere dichiarati in tal modo: motocicletta ES. Alcuni attributi della classe motocicletta possono essere: int cilindrata, anno_immatricolaz; String modello; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Dichiarazione degli attributi

16 Durante la loro dichiarazione gli attributi possono essere anche inizializzati. Se ciò non avviene per default vengono assegnati ai numeri e ai caratteri il valore zero, ai booleani false e agli oggetti null. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Dichiarazione degli attributi motocicletta ES. Alcuni attributi della classe motocicletta possono essere: int cilindrata = 600; int anno_immatricolaz = 1996; String modello = Dominator;

17 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Livelli di visibilità per gli attributi Attraverso la visibilità si stabilisce se lattributo è accessibile da altre classi: public lattributo è accessibile da qualsiasi altra classe; private lattributo è visibile solo allinterno della classe, quindi nessunaltra può variarne il valore; protected lattributo è accessibile dalle classi che appartengono alla stessa libreria e dalle sottoclassi.

18 Se non viene specificato niente, lattributo sarà visibile da tutte le classi. Inoltre per definire un attributo costante deve essere dichiarato final ES. public final boolean risposta_affermativa = true; UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Livelli di visibilità per gli attributi

19 I metodi servono per implementare le funzioni che una classe può eseguire. La dichiarazione prevede oltre il nome del metodo, il livello di visibilità, il tipo restituito, e uno o più parametri racchiusi tra parentesi tonde( ). Il corpo del metodo è racchiuso tra parentesi graffe {}. ( ) { //istruzioni } UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Dichiarazione dei metodi

20 Il tipo restituito e il nome del metodo con le parentesi tonde (non necessariamente contenenti la lista dei parametri) sono obbligatori. Nel caso in cui il metodo non restituisce alcun valore viene usata la parola chiave void come tipo restituito. Se il metodo restituisce un valore (quindi non è void) il suo corpo deve contenere listruzione return. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Dichiarazione dei metodi

21 Il nome del metodo è sempre seguito da parentesi tonde ( ), in cui possono essere elencati i parametri separati tra loro da virgole. ES. void accelera(int velocità_attuale, int velocità_finale) Il passaggio dei parametri può avvenire per valore o per riferimento. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Passaggio di parametri

22 I parametri vengono passati per valore se sono tipi di dati primitivi; quindi per ogni parametro viene creata una copia che diventa variabile locale allinterno del metodo. UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Passaggio di parametri Se sono invece degli oggetti o degli array vengono passati per riferimento, quindi le operazioni fatte su di essi hanno effetto sugli oggetti originali; in quanto viene creata una copia del riferimento e non delloggetto e le modifiche fatte allinterno del metodo modificano anche loggetto originale.

23 ES_1. Si consideri un metodo che calcoli la somma di 2 numeri UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 public int somma (int a, int b) { int sum; sum = a+b; return sum; } Esempi di metodi con passaggio di parametri

24 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 ES_2. Si consideri un metodo che calcoli il massimo degli elementi di un array costituito da 2 numeri public int max (int a[]) { if (a[0] > a[1]) return a[0] else return a[1]; } Esempi di metodi con passaggio di parametri

25 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Livelli di visibilità dei metodi Per la visibilità dei metodi valgono le stesse regole poste per gli attributi public il metodo può essere richiamato da qualsiasi altra classe; private il metodo può essere richiamato solo allinterno della classe in cui è stato definito ; protected il metodo è visibile solo dalle sottoclassi. Solitamente i metodi vengono definiti public

26 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Il metodo costruttore viene eseguito ogni qualvolta che viene istanziato un oggetto. Solitamente viene usato per le operazioni di inizializzazione. Questo metodo ha sempre lo stesso nome della classe. Esso non deve restituire alcun valore, ma non deve neanche essere dichiarato di tipo void. Solitamente viene dichiarato di tipo public. Per compiere le operazioni di inizializzazione vengono spesso usati i parametri. Metodo costruttore

27 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 ES. Costruiamo una classe coppia di numeri interi Class Coppia { int num,succ; public Coppia (int numero) { num=numero; succ=num+1; } Metodo costruttore

28 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Metodo costruttore Allinterno del costruttore è possibile usare come nome del parametro, lo stesso dellattributo. In questo caso sarà usata la parola chiave this (con questo comando loggetto riconosce se stesso), che costituisce un riferimento alloggetto in questione.

29 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Esempio della classe Coppia con luso del this Class Coppia { int num, succ; public Coppia (int num) { this.num=num; succ=this.num+1; } Metodo costruttore

30 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Se una classe viene costruita senza dichiarare il costruttore, in ogni caso viene associato ad essa un costruttore vuoto. In questo caso al momento della creazione di un oggetto della classe non verranno eseguite operazioni. Metodo costruttore

31 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Metodo costruttore ES. Definiamo una classe Moto senza luso del costruttore Class Moto{ int cilindrata; String modello; void inizializza (int c,String m) { cilindrata =c; modello = new String(m) }

32 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Per poter utilizzare le classi è necessario creare e istanziare un oggetto. La dichiarazione delloggetto si fa, facendo seguire al nome della classe il nome delloggetto, in tal modo: Creazione e uso di oggetti Dopo aver fatto ciò è necessario andare ad allocare loggetto in memoria attraverso loperatore new in tal modo: = new ( ) Loperatore new restituisce un riferimento ad unarea di memoria in cui viene memorizzato loggetto.

33 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 E possibile dichiarare e allocare un oggetto attraverso ununica riga di comando: ES. Creiamo un oggetto della classe moto Moto MiaMoto = new Moto(); Creazione e uso di oggetti ES. Creiamo un oggetto della classe moto Moto MiaMoto; MiaMoto = new Moto();

34 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Allocazione di un oggetto in memoria Nella fase di dichiarazione delloggetto viene creata una variabile vuota, un oggetto senza riferimento. Nella fase di allocazione viene inserito nella variabile il riferimento delloggetto, che punta ad unarea di memoria contenente i valori degli attributi delloggetto.

35 import java.io.* ; class Auto { int cilindrata; String modello; Auto (int c, String m) { cilindrata=c; modello = new String (m); } void VisualizzaInfo( ) { System.out.println ("Modello: "+modello); System.out.println ("Cilindrata: "+cilindrata); } class Car { public static void main (String arg[ ]) { static Auto fer = new Auto(2000,"Ferrari F-40"); static Auto alf = new Auto(1300,"Alfa 33"); fer.VisualizzaInfo(); alf.VisualizzaInfo(); } Esempio

36 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Per accedere agli attributi di un oggetto si usa loperatore punto. E viene inserito tra loggetto e lattributo. Lattributo deve essere visibile nel contesto in cui è richiamato. Accesso agli attributi di un oggetto

37 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Anche per invocare un metodo viene usato loperatore punto. E viene inserito tra loggetto e lattributo. ( ) Quando viene richiamato un metodo, allinterno di un altro metodo, appartenente alla stessa classe del primo, non è necessario usare questa tecnica, ma può essere direttamente invocato. Accesso ai metodi di un oggetto

38 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 Definendo un attributo static si avrà una copia sola di quellattributo per tutti gli oggetti di quella classe. Solitamente gli attributi non vengono dichiarati static, quindi si ha per ogni oggetto una copia. Un attributo statico, per cui, viene condiviso da tutte le istanze della classe. Es. Un esempio di attributo statico è il pigreco PI, dichiarato nella classe Math, del package java.lang public static final double PI; Attributi e metodi static

39 UD 3: GLI OGGETTI IN JAVA Cristina Parisi DIC 2002 I metodi statici vengono richiamati senza dover creare un oggetto di classe, infatti per invocarlo basta utilizzare il nome della classe e non delloggetto. Es. Nella classe Math esistono vari metodi, fra cui il metodo random( ) che è un metodo static public static double random( ); Attributi e metodi static

40 FINE


Scaricare ppt "UNITA DIDATTICA 3: GLI OGGETTI IN JAVA Fondamenti di Informatica Cristina Parisi DIC 2002 MODULO LINGUAGGIO JAVA."

Presentazioni simili


Annunci Google