Classe Libro

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

  1. Aggiungi altri attributi (numero pagine, prezzo, casa editrice, …)
  2. Aggiungi un metodo per aggiornare il prezzo
  3. Qual è il libro più economico?
  4. Esiste un libro dal titolo gamma? Quanto costa?
  5. Qual è il prezzo medio dei libri?