Elaboratori

Tratto da: F. Sanpietro, O. Sanpietro – Java: il linguaggio e la tecnologia – TRAMONTANA

Un progetto per una gerarchia di classi
image

public class Elaboratore
{
   protected String CPU;
   protected int    RAM,
                    hardDisk;
 
   public void nuovoElaboratore(String CPU, int RAM, int HardDisk)
   {
      this.CPU=CPU;
      this.RAM=RAM;
      this.hardDisk=HardDisk;
   }
}
public class PC extends Elaboratore
{
   protected String periferiche;
 
   public void nuovoPC(String Periferiche)
   {
      this.periferiche=Periferiche;
   }
}
public class Notebook extends PC
{
   protected String dimensioni,
                    peso;
   public void nuovoNotebook(String Dimensioni, String Peso)
   {
      this.dimensioni=Dimensioni;
      this.peso=Peso;
   }
   public String toString()
   {
      return CPU + ", RAM: " + RAM + "MB, Hard Disk: " + hardDisk + "GB" + "*n" +
             "Periferiche aggiuntive: " + periferiche + "*n" +
             "Dimensioni: " + dimensioni + ", peso: " + peso;
   }
}
public class Desktop extends PC
{
   // ecc.
}
public class Server extends Elaboratore
{
   // ecc.
}

Richiede i seguenti passi per poter utilizzare un oggetto della classe Notebook

Notebook computer = new Notebook();

computer.nuovoElaboratore("MicroP 2,4 GHz", 256, 40);
computer.nuovoPC("lettore DVD");
computer.nuovoNotebook("29,9-23,0-5,5 cm", "2,9 Kg");


Se si introducono i costruttori e si usano intensivamente tramite super()
image

public class Elaboratore
{
   protected String CPU;
   protected int    RAM,
                    hardDisk;
   public Elaboratore(String CPU, int RAM, int HardDisk)
   {
      this.CPU=CPU;
      this.RAM=RAM;
      this.hardDisk=HardDisk;
  }
}
public class PC extends Elaboratore
{
   protected String periferiche;
   public PC(String CPU, int RAM, int HardDisk,
             String Periferiche)
   {
      super(CPU, RAM, HardDisk);
      this.periferiche=Periferiche;
   }
}
public class Notebook extends PC
{
   protected String dimensioni,
                    peso;
   public Notebook(String CPU, int RAM, int HardDisk,
                   String Periferiche,
                   String Dimensioni, String Peso)
   {
      super(CPU, RAM, HardDisk, Periferiche);
      this.dimensioni=Dimensioni;
      this.peso=Peso;
   }
   public String toString()
   {
      return CPU + ", RAM: " + RAM + "MB, Hard Disk: " + hardDisk + "GB" + "*n" +
             "Periferiche aggiuntive: " + periferiche + "*n" +
             "Dimensioni: " + dimensioni + ", peso: " + peso;
   }
}

è possibile inizializzare un oggetto della classe Notebook (is a PC (is a Elaboratore)) con tutti i dati necessari, in un’unica istruzione

Notebook computer = new Notebook("MicroP 2,4 GHz", 256, 40,      // per Elaboratore()
                                 "lettore DVD",                  // per PC()
                                 "29,9-23,0-5,5 cm", "2,9 Kg");  // per NoteBook()