<<  Gap analysis is a tool used in wildlife conservation to identify gaps in conservation lands or other wildlands where significant plant and animal species and their habitat or important ecological features occur Gerencia de Ventas  >>
Gerarchia di classi Java

: Maria A. Alberti. , . , Gerarchia di classi Java.ppt zip- 134 .

Gerarchia di classi Java

Gerarchia di classi Java.ppt
1Gerarchia di classi Java. 25complicazioni di quella multipla. AA
Programmazione Corso di laurea in 2003/04 M.A. Alberti. 25. Programmazione
Informatica. Gerarchie di classi.
2Specializzare un modello. Una classe 26Sovraccaricare vs. sovrascrivere. I
modella un pezzo di realt? Una macchina, concetti di sovraccaricamento e di
una moneta, un impiegato Spesso ? sovrascrittura sono diversi Sovraccaricare
necessario specializzare la versione si riferisce alla possibilit? di definire
originale del modello Un dirigente ? un pi? metodi nella stessa classe con lo
particolare impiegato Dichiarazione di stesso nome ma segnature diverse Il
classi che illustra lidea Occorre evitare sovraccaricamento consente di definire
la duplicazione dei dati Alcuni metodi operazioni simili in modi diversi con dati
sono utili per entrambe le classi diversi Sovrascrivere si riferisce a due
Specializzare le classi e lereditariet? metodi, uno della superclasse e uno della
AA 2003/04 M.A. Alberti. 2. sottoclasse, che devono avere lo stesso
Programmazione Gerarchie di classi. prototipo La sovrascrittura consente di
3Ereditariet? Consiste nel definire una definire operazioni simili in modi diversi
classe tramite unaltra gi? definita In per oggetti diversi. AA 2003/04 M.A.
Java, per stabilire una relazione di Alberti. 26. Programmazione Gerarchie di
sottoclasse, si usa la parola riservata classi.
extends public class Dirigente extends 27Diagramma delle classi. Object. . .
Impiegato { public String divisione; }. AA . . . . . . . . . . AA 2003/04
2003/04 M.A. Alberti. 3. Programmazione M.A. Alberti. 27. Programmazione Gerarchie
Gerarchie di classi. di classi.
4Ereditariet? Il poter definire una 28La classe Object. La classe Object ?
struttura gerarchica tra le classi predefinita nel pacchetto java.lang della
costituisce una fondamentale tecnica libreria standard di classi Tutte le
dellapproccio object-oriented facilita il classi discendono dalla classe Object Se
disegno del software e ne promuove il una classe non ? esplicitamente dichiarata
riuso Derivare nuove classi da gi? discendente da una superclasse, si assume
definite Creare una gerarchia tra classi che discenda dalla classe Object La classe
Controllare lereditariet? con il Object ? la radice di tutti gli alberi di
modificatore protected Polimorfismo discendenza. AA 2003/04 M.A. Alberti.
tramite ereditariet? AA 2003/04 M.A. 28. Programmazione Gerarchie di classi.
Alberti. 4. Programmazione Gerarchie di 29La classe Object. La classe Object
classi. contiene alcuni metodi, pochi ma utili,
5Ereditariet? La classe esistente viene che vengono ereditati da tutte le classi
detta classe antenato o superclasse o Il metodo toString ad esempio ? definito
anche classe base La nuova classe derivata per la classe Object Il metodo toString
viene detta classe figlio o sottoclasse. della classe Object restituisce una
Come i nomi suggeriscono, il figlio stringa di caratteri contenete il nome
eredita alcune caratteristiche dal della classe e un valore che identifica
genitore o antenato La sottoclasse eredita loggetto univocamente Ogni volta che
metodi e dati dalla superclasse. AA definiamo esplicitamente toString, in
2003/04 M.A. Alberti. 5. Programmazione effetti lo riscriviamo. AA 2003/04 M.A.
Gerarchie di classi. Alberti. 29. Programmazione Gerarchie di
6Ereditariet? Nel diagramma di classe classi.
si mette in evidenza la relazione tra 30La classe Object. Il metodo println
classe e sottoclasse introdotta richiama il metodo toString per ogni
dallereditariet? la freccia ? rivolta oggetto che gli viene passato come
verso la superclasse Lereditariet? parametro perch? tutti gli oggetti hanno
implementa una relazione is-a, cio? il un metodo toString ottenuto per
figlio ? una versione pi? specifica del ereditariet? Il metodo equals della classe
padre. AA 2003/04 M.A. Alberti. 6. Object determina se due riferimenti sono
Programmazione Gerarchie di classi. alias Spesso ? necessario riscrivere
7Definire sottoclassi. Lereditariet? ? equals per definire il metodo con una
appropriata ogni volta che esiste una semantica appropriata Studente.java,
relazione ?_un o is_a tra due oggetti. Il StudenteDott.java con Accademia.java. AA
dirigente ? un particolare impiegato Ha 2003/04 M.A. Alberti. 30. Programmazione
senso definire la classe Dirigente come Gerarchie di classi.
una sottoclasse di Impiegato La classe 31Decomposizione di metodi e
Dirigente eredita dalla classe Impiegato ereditariet? Nella decomposizione di
alcune caratteristiche e funzionalit? AA metodi spesso si usano metodi di servizio
2003/04 M.A. Alberti. 7. Programmazione richiamati allinterno di un metodo, in
Gerarchie di classi. genere dichiarati private Un problema se
8Definire sottoclassi. Un quadrato ? un il metodo di servizio deve essere
particolare rettangolo, che ? un tipo di ereditato e sovrascritto Figure.java
poligono La classe Quadrato estende la superclasse Triangle.java, Box.java e
classe Rettangolo, sottoclasse di Diamond.java Driver.java. AA 2003/04
Poligono. Un taxi ? una particolare M.A. Alberti. 31. Programmazione Gerarchie
macchina che ? un particolare veicolo di classi.
class Taxi extends Macchina { } A sua 32Classi astratte. Una classe incompleta
volta la classe Macchina ?_un particolare che contiene metodi astratti ? un
Veicolo class Macchina extends Veicolo { segnaposto nella gerarchia delle classi,
} Un Dizionario ? un tipo di Libro modella un concetto generico Il
Libro.java, Dizionario.java con modificatore abstract nellintestazione
TestDizionario.java. AA 2003/04 M.A. della classe Una classe abstract diventa
Alberti. 8. Programmazione Gerarchie di incompleta per definizione La classe
classi. abstract non pu? essere instanziata ma
9Gerarchie di classi. Una sottoclasse deve essere specializzata. AA 2003/04
pu? essere superclasse di un proprio M.A. Alberti. 32. Programmazione Gerarchie
discendente Cos? si forma una gerarchia di di classi.
classi. AA 2003/04 M.A. Alberti. 9. 33Classi astratte. Una classe deve
Programmazione Gerarchie di classi. essere dichiarata astratta se: Contiene la
10Gerarchie di classi. Due discendenti dichiarazione di un metodo astratto
della stessa superclasse si dicono Eredita un metodo astratto dalla
fratelli Un buon disegno di relazioni tra superclasse e non ne fornisce
classi mette tutte le caratteristiche limplementazione Dichiara di implementare
comuni il pi? alto possibile in gerarchia un interfaccia, ma non fornisce
Un membro ereditato viene passato verso il limplementazione di tutti i metodi. AA
basso nella linea di discendenza La 2003/04 M.A. Alberti. 33. Programmazione
gerarchia spesso deve essere estesa e Gerarchie di classi.
modificata per soddisfare esigenze che 34Classi astratte. Il discendente di una
cambiano Non esiste la gerarchia classe astratta deve sovrascrivere i
appropriata a tutte le situazioni. AA metodi astratti della superclasse da cui
2003/04 M.A. Alberti. 10. Programmazione discende o sar? considerata anche lei
Gerarchie di classi. astratta Un metodo astratto non pu? essere
11Ereditare dalla superclasse. La definito final, static o private Perch?
sottoclasse eredita dalla superclasse e da dovr? essere sovrascritto (final) Perch?
tutti gli antenati. In particolare non ha ancora una definizione (static)
eredita: Tutti i membri (variabili e Perch? non potrebbe essere ereditato
metodi) della superclasse accessibili a (private) Una questione di scelta di
quella sottoclasse, a meno che disegn Aiuta a stabilire gli elementi
Esplicitamente nasconda le variabili o ne comuni che dovranno avere le sottoclassi
sovrascriva i metodi, ridefinendoli. I di una classe che rappresenta un concetto
costruttori non sono membri di una classe astratto. AA 2003/04 M.A. Alberti. 34.
e perci? non vengono ereditati dalle Programmazione Gerarchie di classi.
sottoclassi. AA 2003/04 M.A. Alberti. 35Classe astratte sintesi. Una classe
11. Programmazione Gerarchie di classi. astratta ? definita con il modificatore
12I membri accessibili. Una sottoclase abstract Pu? contenere metodi implementati
eredita i membri accessibili della e costruttori. Se ha almeno un metodo
superclasse, dichiarati: public o astratto allora deve essere dichiarata
protected nella superclasse di default, astratta. Non ? possibile istanziarla.
senza modificatore, purch? siano nello Spesso dichiara una variabile del tipo
stesso pacchetto della superclasse Una classe astratta, in cui poi si archvivia
sottoclasse non eredita i membri il riferimento a oggetti delle sottoclassi
dichiarati private dalla superclasse con Le sottoclassi devono fornire
lo stesso nome nella sottoclasse Variabili implementazione per tutti i metodi
oscurate Metodi sovrascritti. AA 2003/04 astratti o anche loro saranno considerate
M.A. Alberti. 12. Programmazione Gerarchie astratte. I metodi astratti non possono
di classi. essere dichiarati con i modificatori
13Variabili oscurate. class Sopra { private, static o final. AA 2003/04 M.A.
Number unNumero; } class Sotto extends Alberti. 35. Programmazione Gerarchie di
Sopra { Float unNumero; }. La variabile classi.
unNumero nella classe Sotto oscura la 36Quando sono appropriate. Non si devono
visibilit? della variabile unNumero della istanziare oggetti della classe. La
classe Sopra. AA 2003/04 M.A. Alberti. dichiarazione abstract garantisce che non
13. Programmazione Gerarchie di classi. verr? mai istanziata. I dati comuni
14I modificatori di visibilit? Servono possono essere raccolti in una
per controllare lereditariet? Determinano superclasse, anche senza metodi. Qui si
quali membri della classe vengono o non usa una gerarchia di classi in cui una
vengono ereditati Si ereditano le classe serve per scambiare dati ma non ci
variabili e i metodi dichiarati con sono metodi comuni Iniziare una gerarchia
visibilit? public, ma non quelli con di classi che devono essere specializzate
visibilit? private Le variabili public ulteriormente Qui si usa la classe
violano la regola di incapsulare i dati astratta per contenere metodi la cui
Quando si vuole stabilire una relazione di specializzazione ? rinviata alle classi
ereditariet? possiamo usare un terzo specializzate Definire il comportamento
modificatore di visibilit?: protected. AA fondamentale della classe senza darne
2003/04 M.A. Alberti. 14. Programmazione limplementazione. AA 2003/04 M.A.
Gerarchie di classi. Alberti. 36. Programmazione Gerarchie di
15Il modificatore protected. Il classi.
modificatore di visibilit? protected 37Riferimenti ed ereditariet? Tramite
consente ai figli di ereditare i membri di riferimenti si pu? accedere a un oggetto
una classe base Il modificatore protected legato alla classe da una relazione di
favorisce lincapsulamento pi? del ereditariet? Se la classe Festa ha una
modificatore public Ma il modificatore sottoclasse Natale, allora una variabile a
protected non contribuisce riferimento della classe Festa pu? anche
allincapsulamento in modo stretto come essere usata per puntare a un oggetto
private I dettagli in appendice F del Natale. Festa giorno; giorno = new
testo Lewis-Loftus. AA 2003/04 M.A. Natale(); AA 2003/04 M.A. Alberti. 37.
Alberti. 15. Programmazione Gerarchie di Programmazione Gerarchie di classi.
classi. 38Riferimenti e ereditariet? Nella
16Il riferimento super. Il riferimento gerarchia di classi la sottoclasse
super viene usato per riferirsi alla specializza la superclasse e introduce
superclasse. Per accedere a variabili, a nuove funzionalit? Ma la nuova classe pu?
metodi o a costruttori della superclasse essere vista come un tipo di quella
Spesso occorre usare il costruttore esistente Questo consente lupcasting La
dellantenato per inizializzare i campi di nuova classe ? costituita dagli elemneti
un oggetto figlio, relativi allantenato, della classe base cui aggiunge i propri
cio? ereditati dalla superclasse. AA Lupcasting ? sempre lecito. AA 2003/04
2003/04 M.A. Alberti. 16. Programmazione M.A. Alberti. 38. Programmazione Gerarchie
Gerarchie di classi. di classi.
17Il riferimento super. Tramite il 39class Strumento { public void suona()
riferimento super si possono accedere {} static void brano (Strumento s) {
variabili oscurate dalla sottoclasse La s.suona() } } Class Archi extends
variabile unNumero della classe Sopra ? Strumento { public static void
accessibile anche dalla classe Sotto main(String[] a) { Archi violino = new
super.unNumero O ai metodi sovrascritti Archi(); Strumento.brano(violino); } } Al
della superclasse. AA 2003/04 M.A. metodo di classe brano viene passato un
Alberti. 17. Programmazione Gerarchie di parametro di tipo Archi e non di tipo
classi. Strumento. Il riferimento a Archi,
18Sovrascivere metodi. Una classe figlio violino, viene convertito a un riferimento
pu? sovrascrivere la definizione di un a Strumento, mediante un upcasting. AA
metodo ereditato per specializzarlo Un 2003/04 M.A. Alberti. 39. Programmazione
figlio pu? dover modificare un metodo Gerarchie di classi.
ereditato Il nuovo metodo deve avere lo 40Riferimenti ed ereditariet? Possiamo
stesso prototipo del metodo della assegnare a variabili a riferimento di una
superclasse, ma un diverso corpo Il tipo superclasse un oggetto di una sottoclasse,
delloggetto a cui ? inviato il metodo semplicemente con un assegnamento
determina la versione del metodo invocato. Conversione larga o upcasting Assegnare a
AA 2003/04 M.A. Alberti. 18. un oggetto discendente il riferimento a un
Programmazione Gerarchie di classi. antenato pu? essere fatto, ma richiede un
19Sovrascivere metodi. Il metodo della cast esplicito Conversione stretta o
superclasse pu? essere esplicitamente downcasting La conversione larga ? pi?
invocato mediante il riferimento super Se utile e meno pericolosa. AA 2003/04 M.A.
un metodo ? dichiarato anche con il Alberti. 40. Programmazione Gerarchie di
modificatore final allora non pu? essere classi.
sovrascritto La sovrascrittura pu? essere 41Polimorfismo via ereditariet? Un
applicata a variabili si dice che le riferimento polimorfico punta a oggetti di
variabili sono oscurate tipo diverso in tempi diversi Le
Disinfettante.java, e la sottoclasse interfacce possono essere usate per creare
Detergente.java Massima.java, riferimenti polimorfici Lereditariet? pu?
Consiglio.java con Messaggi.java. AA essere usata come base del polimorfismo
2003/04 M.A. Alberti. 19. Programmazione Una variabile a riferimento pu? puntare a
Gerarchie di classi. un oggetto in un dato istante e puntarne a
20Regole per sovrascrivere metodi. Il un altro (legato al primo nella struttura
prototipo dei due metodi deve essere gerarchica delle classi) in un altro
identico: stesso tipo di rientro e momento. AA 2003/04 M.A. Alberti. 41.
parametri Il metodo sovrascritto non pu? Programmazione Gerarchie di classi.
essere meno accessibile del metodo 42Polimorfismo via ereditariet? Sia
originale Un metodo sovrascritto non pu? celebrare un metodo della classe Festa,
sollevare differenti tipi di eccezioni sovrascritto dalla classe Natale
rispetto al metodo originale. AA 2003/04 Linvocazione giorno.celebrare(); produce
M.A. Alberti. 20. Programmazione Gerarchie effetti diversi: Se giorno si riferisce a
di classi. un oggetto della classe Festa, viene
21Costruttori della sottoclasse. I invocata la versione celebrare() della
costruttori non vengono ereditati, non classe Festa; se invece punta a un oggetto
essendo membri di classe Vengono definiti della sottoclasse Natale verr? invocata la
esplicitamente dal programmatore Oppure versione specifica e sovrascritta della
viene usato quello di default Il sottoclasse. AA 2003/04 M.A. Alberti.
costruttore di default ? quello senza 42. Programmazione Gerarchie di classi.
argomenti fornito automaticamente quando 43Polimorfismo via ereditariet? ? il
non ne avete definito uno. AA 2003/04 tipo delloggetto cui si punta, che
M.A. Alberti. 21. Programmazione Gerarchie determina quale metodo viene invocato Si
di classi. noti che, se linvocazione avviene in un
22Chiamata al costruttore della ciclo, la stessa riga di codice potrebbe
sottoclasse. Quando un oggetto viene eseguire metodi diversi a ogni passo I
instanziato, viene generata una sequenza riferimenti polimorfici vengono risolti a
dazioni: Viene allocato lo spazio per il run-time, e non durante la compilazione.
nuovo oggetto sullo heap. Tutte la AA 2003/04 M.A. Alberti. 43.
variabili distanza, anche quelle Programmazione Gerarchie di classi.
ereditate vengono inizializzate ai valori 44Polimorfismo via ereditariet? Data la
di default. Si esegue la chiamata seguente struttura gerarchica: AA 2003/04
esplicita a un costruttore della stessa M.A. Alberti. 44. Programmazione
classe (this()) se c? Altrimenti si Gerarchie di classi.
invoca il costruttore esplicito o 45Polimorfismo via ereditariet? Si
implicito della superclasse e si risolve il compito di calcolare la
inizializzano le variabili distanza retribuzione Istituzione.java driver con
nellordine in cui appaiono nel codice. Si il main Staff.java inizializza la lista
esegue il resto del codice del costruttore del personale Personale.java la classe
I passi da 2. a 4. vengono ripetuti astratta Dipendente.java modella un
ricorsivamente per tutte le classi della dipendente generico Volontario.java
gerarchia. AA 2003/04 M.A. Alberti. 22. modella un volontario Impiegato.java
Programmazione Gerarchie di classi. modella un impiegato che pu? prendere
23Ordine della chiamata al costruttore. gratifiche, specializzando un dipendente
Java richiede che sia completamente Giornaliero.java modella un lavoratore a
inizializzato loggetto che descrive il giornata, specializzando un dipendente
padre prima che si possa eseguire una generico. AA 2003/04 M.A. Alberti. 45.
qualunque computazione sul figlio Chiamata Programmazione Gerarchie di classi.
implicita al costruttore della superclasse 46Accesso indiretto. Tutti i membri
Arte.java, Disegno.java e Schizzo.java della superclasse sono accessibili alla
Chiamata esplicita al costruttore della sottoclasse, anche se non sono ereditati I
superclasse tramite super Libro_2.java, membri di classe ereditati sono
Dizionario_2.java con accessibili direttamente I membri non
TestDizionario_2.java. AA 2003/04 M.A. ereditati sono accessibili indirettamente
Alberti. 23. Programmazione Gerarchie di tramite i metodi ereditati della
classi. superclasse Calorie.java driver, istanzia
24Costruzione delloggetto della una Pizza Cibo.java istanzia un oggetto
sottoclasse. Di default ogni costruttore con dati grammi di grasso e calcola le
di sottoclasse chiama il costruttore senza calorie dovute al grasso Pizza.java. AA
argomenti del padre Se il padre non ne ha 2003/04 M.A. Alberti. 46. Programmazione
uno la sottoclasse non viene compilata Se Gerarchie di classi.
la superclasse ha costruttori con 47Composizione di classi vs ereditariet?
parametri, si invoca super con parametri Tavola.java. is-a. has-a. cucch. forch.
appropriati per controllare esplicitamente colt. piatti. Object. Piatto.
la costruzione delloggetto padre La Posto_a_tavola. Posata. Piatto_cena.
chiamata a super deve essere la prima Tavola. Cucchiaio. Forchetta. Coltello. AA
istruzione del costruttore. AA 2003/04 2003/04 M.A. Alberti. 47. Programmazione
M.A. Alberti. 24. Programmazione Gerarchie Gerarchie di classi.
di classi. 48Gerarchie di interfacce. Il meccanismo
25Ereditariet? singola e multipla. Java dellereditariet? pu? essere applicato
fornisce solo ereditariet? singola La alle interfacce Uninterfaccia pu?
sottoclasse deriva da una sola superclasse diventare lantenata di unaltra
Lereditariet? multipla consente la Linterfaccia figlio eredita tutti i
derivazione di una classe da pi? classi metodi astratti dal genitore Una classe
antenati, e di ereditare i membri di pi? che implementa uninterfaccia derivata
classi Lereditariet? multipla introduce deve definire tutti i metodi
ambiguit?, che devono essere risolte Ad dellintarfaccia genitore oltre a quelli
esempio: lo stesso nome di variabile in del figlio Le gerarchie di classi e quelle
pi? classi Nella maggior parte dei casi, di interfacce sono distinte. AA 2003/04
luso di interfacce supera i limiti M.A. Alberti. 48. Programmazione Gerarchie
dellereditariet? singola senza le di classi.
Gerarchia di classi Java.ppt
http://900igr.net/kartinka/anglijskij-jazyk/gerarchia-di-classi-java-121575.html
c

Gerarchia di classi Java

Gerarchia di classi Java

- Read out the words with this sounds. . . . . . . . . .

London - Paul's Cathedral. James' Park. PICCADILLY CIRCUS. the heart of London. INVITE. Will you go with me ? Speaker's Corner. Westminster Abbey. . . a raven - the guard of Tower. The Queen's residence. Buckingham Palace. We like our city, and you ? knowing. . . .

Invention - The term bicycle was coined in France in the 1860s. He is considered by many Italians as the inventor of the telephone. The Invention of Television. The BBC begins regular TV transmissions. he inventors of the first airplane were Orville and Wilbur Wright. Percy Spencer invented the first microwave oven after World War II from radar technology developed during the war.

- 1603, Shakespeare took control over Lord Chamberlains Men. Shakespeares plays are still done in globe theaters around the world. Top view of Shakespeare's Globe Theater. William was regarded as the greatest author in the English Language. William Shakespeare. Entrance of The Globe Theater. William Shakespeare.

- . . : V . ?! Sue Finnie, Daniele Bourdais. , . : . 3 .

- Sturday. Sunday Monday Tuesday Wednesday Thursday Friday Saturday. . Friday. Tuesday. Thursday. Sunday. Monday. Wednesday.

661

29
900igr.net > > > Gerarchia di classi Java