40. Scheda di lavoro (Java: ArrayList) 29/04/2016

Transcript

40. Scheda di lavoro (Java: ArrayList) 29/04/2016
ITI “G.M.Angioy” Sassari – QUARTA INFORMATICA
A.S. 2015-16
40. Scheda di lavoro (Java: ArrayList)
29/04/2016
Esempio di utilizzo di ArrayList di oggetti , in particolare di Animali e di Gatti (che derivano da Animale)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package liste;
import java.util.List;
import java.util.ArrayList;
public class Liste {
public static void main(String[] args) {
// TODO code application logic here
List Elenco = new ArrayList();
Animale a = new Animale("animale1");
Elenco.add( a );
Elenco.add( new Animale("animale2") );
System.out.println("Elenco è un ArrayList, gli elementi sono Animali");
System.out.println("Elenco.toString()-->"+Elenco.toString() );
System.out.println("\nElenco è un ArrayList, uso metodo toString classe Animale");
for (int i=0; i<Elenco.size();i++) {
System.out.println("Elenco.get(i)-->" + Elenco.get(i) );
}
// Animale x=Elenco.get(0); incompatible types: Object cannot be converted to Animale
System.out.println("\nAnimale x=Elenco.get(0); NO: incompatible types: Object cannot be converted to Animale");
Animale x= (Animale)Elenco.get(0); //ok get restituisce un oggetto, poi il casting
System.out.println("\nAnimale x= (Animale)Elenco.get(0); //ok: get restituisce un oggetto, poi il casting");
System.out.println("x.presentazione()--> "+x.presentazione() );
System.out.println("x.toString()--> "+ x.toString() );
System.out.println("((Animale)Elenco.get(0)).presentazione()--> " + ((Animale)Elenco.get(0)).presentazione() );
//come sopra, con codice più ristretto
System.out.println("\n\nAGGIUNGO UN GATTO ALL'ELENCO DEGLI ANIMALI");
Elenco.add( new Gatto("gatto1") );
System.out.println("Elenco.toString()-->"+Elenco.toString() );
System.out.println("\nElenco è un ArrayList, gli elementi sono Animali +1 gatto, uso metodo toString classe Animale + gatto");
for (int i=0; i<Elenco.size();i++) {
System.out.println("Elenco.get(i)-->" + Elenco.get(i));
}
Animale y = (Animale)Elenco.get(2); //ok get restituisce un oggetto, poi il casting
System.out.println("\nAnimale y= (Animale) Elenco.get(2); //ok get restituisce un oggetto, poi il casting");
System.out.println("y.presentazione()--> "+ y. presentazione( ) + " ---polimorfismo: l'animale sa di essere un gatto!---");
System.out.println("y.toString()--> "+y.toString( ) );
System.out.println("((Animale)Elenco.get(2)).presentazione()--> " + ( (Animale) Elenco.get(2 ) ).presentazione( )
//come sopra, con codice più ristretto
}
}
package liste;
public class Animale {
protected String nome;
public Animale() { }
public Animale(String nome) { this.nome=nome; }
public String toString() { return nome ; }
public String presentazione() { return "sono "+ nome ; }
}
package liste;
public class Gatto extends Animale {
public Gatto(String nome) { this.nome=nome; }
public String presentazione() { return "sono il gatto "+ nome ; }
}
[email protected]
Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons.
69
ITI “G.M.Angioy” Sassari – QUARTA INFORMATICA
A.S. 2015-16
Di seguito è mostrato l’output del codice mostrato nella pagina precedente, verifica di comprendere tutto!
Viene ancora mostrato l’output: qui per guidare la lettura a fianco a ciascuna riga di output è indicato il numero
della riga di codice da cui deriva.
11
12
Elenco è un ArrayList, gli elementi sono Animali
Elenco.toString()-->[animale1, animale2]
13
14-16
14-16
Elenco è un ArrayList, uso metodo toString classe Animale
Elenco.get(i)-->animale1
Elenco.get(i)-->animale2
18-19
Animale x=Elenco.get(0); NO: incompatible types: Object cannot be converted to Animale
21-22
23
24
26
Animale x= (Animale)Elenco.get(0); //ok: get restituisce un oggetto, poi il casting
x.presentazione()--> sono animale1
x.toString()--> animale1
((Animale)Elenco.get(0)).presentazione()--> sono animale1
29-30
31
AGGIUNGO UN GATTO ALL'ELENCO DEGLI ANIMALI
Elenco.toString()-->[animale1, animale2, gatto1]
33
34-36
34-36
34-36
Elenco è un ArrayList, gli elementi sono Animali + 1 Gatto, uso metodo toString classe Animale + Gatto
Elenco.get(i)-->animale1
Elenco.get(i)-->animale2
Elenco.get(i)-->gatto1
38-39
40
41
43
Animale y = (Animale)Elenco.get(2); //ok get restituisce un oggetto, poi il casting
y.presentazione()--> sono il gatto gatto1 ---polimorfismo: l'animale sa di essere un gatto!--y.toString()--> gatto1
( (Animale) Elenco.get(2 ) ).presentazione( )--> sono il gatto gatto1
[email protected]
Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons.
70