La classe Libro come modello di contenitore per i dati caratteristici di un libro
public class Libro { public String autore; public String titolo; public double prezzo; }
Utilizziamo la classe Libro per gestire i dati di tre libri
public class LibroTest { public static void main(String args[]) { Libro storia=new Libro(); Libro mate =new Libro(); Libro info =new Libro(); // scrittura storia.autore="alfa" ; storia.titolo="IO" ; storia.prezzo=25.0; mate.autore="beta" ; mate.titolo="TU" ; mate.prezzo=33.0; info.autore="gamma"; info.titolo="NOI"; info.prezzo=27.5; // lettura System.out.println(storia.autore + "," + storia.titolo + "," + storia.prezzo); System.out.println( mate.autore + "," + mate.titolo + "," + mate.prezzo); System.out.println( info.autore + "," + info.titolo + "," + info.prezzo); double totale=storia.prezzo + mate.prezzo + info.prezzo; System.out.println("*" Il prezzo totale e' " + totale + "*"); } }
L’attributo prezzo può essere aggiornato…
public class LibroTest { // come prima... storia.prezzo=1.2*storia.prezzo; System.out.println(storia.autore + "," + storia.titolo + "," + storia.prezzo); System.out.println( mate.autore + "," + mate.titolo + "," + mate.prezzo); System.out.println( info.autore + "," + info.titolo + "," + info.prezzo); double totale=storia.prezzo + mate.prezzo + info.prezzo; System.out.println("*" Il prezzo totale e' " + totale + "*"); } }
Costruttore
La fase di inserimento dei dati può essere semplificata con un metodo specifico, il costruttore
public class Libro { public String autore; public String titolo; public double prezzo; public Libro(String a, String t, double p) { autore=a; titolo=t; prezzo=p; } } public class LibroTest { public static void main(String args[]) { Libro storia=new Libro("alfa" , "IO" , 25.0); Libro mate =new Libro("beta" , "TU" , 33.0); Libro info =new Libro("gamma", "NOI", 27.5); System.out.println(storia.autore + "," + storia.titolo + "," + storia.prezzo); System.out.println( mate.autore + "," + mate.titolo + "," + mate.prezzo); System.out.println( info.autore + "," + info.titolo + "," + info.prezzo); double totale=storia.prezzo + mate.prezzo + info.prezzo; System.out.println("*" Il prezzo totale e' " + totale + "*"); } }
toString()
Per semplificare la fase di output dei dati di un libro introduciamo un altro metodo, toString(), il cui nome non è casuale…
public class Libro { public String autore; public String titolo; public double prezzo; public Libro(String a, String t, double p) { autore=a; titolo=t; prezzo=p; } public String toString() { return autore + "," + titolo + "," + prezzo; } } public class LibroTest { public static void main(String args[]) { Libro storia=new Libro("alfa" , "IO" , 25.0); Libro mate =new Libro("beta" , "TU" , 33.0); Libro info =new Libro("gamma", "NOI", 27.5); System.out.println(storia.toString()); System.out.println( mate.toString()); System.out.println( info.toString()); } }
Array
Un elenco di libri…
public class LibroTest { public static void main(String args[]) { Libro[] iLibri=new Libro[5]; iLibri[0]=new Libro("alfa" , "IO" , 25.0); iLibri[1]=new Libro("beta" , "TU" , 33.0); iLibri[2]=new Libro("gamma" , "NOI", 27.5); iLibri[3]=new Libro("delta" , "VOI", 40.0); iLibri[4]=new Libro("epsilon", "LEI", 15.5); for(int i=0; i < 5; i++) System.out.println(iLibri[i].toString()); } }
Esercizi
- Aggiungi altri attributi (numero pagine, prezzo, casa editrice, …)
- Aggiungi un metodo per aggiornare il prezzo
- Qual è il libro più economico?
- Esiste un libro dal titolo gamma? Quanto costa?
- Qual è il prezzo medio dei libri?