Programmazione a oggetti Java

Facendo un salto come complessità passiamo alla programmazione a oggetti. Un programma invece di essere dei dati e delle routines e' un insieme di oggetti che comunicano mandadosi messaggi. L'idea di base e' che un oggetto descrive un "oggetto di tutti i giorni" con una serie di dati e una serie di routines che trattano questi dati. Nel gergo un oggetto e' definito da una classe con proprieta' e metodi. Le proprieta' non sono altro che delle variabili che descrivono l'oggetto mentre potete pensare ai metodi come azioni che l'oggetto puo' fare o meglio comandi che gli potete inviare. (In effetti la differenza tra metodo e routine e' che un metodo e' una routine collegata a un singolo oggetto).Ora passiamo all'equivalente del programma CiaoATutti della programmazione a oggetti:un programma che non fa niente se non descrivere qualche oggetto della vita di tutti i giorni,in questo caso la moto.

/*classe Moto*/
class Moto{
     String marca;
     String colore;
     boolean motoreacceso;
   
  /*il costruttore*/
    
     Moto(String m, String c){
         marca = m;
         colore = c;
         motoreacceso = false;
        }

  /*metodi*/
     void mostraTipo(){
         System.out.println("La marca di questa moto e' "+marca+" e il suo colore e' "+colore);
         if(motoreacceso == true)
            System.out.println(".Essa ha il motore acceso.");
         else
            System.out.println(".Essa ha il motore spento.");
        }
     
     void accendiMotore(){
         if (motoreacceso == true)
            System.out.println("Il motore e' gia' acceso");
           else {
              motoreacceso = true;
              System.out.println("Ora il motore e' acceso");
                }
      }
      
 /*main*/
     public static void main(String args[]){
      Moto a = new Moto("Ducati","rossa");
      Moto b = new Moto("Piaggio","blu");
      
      a.mostraTipo();
      a.accendiMotore();
      a.mostraTipo();
      b.accendiMotore();
      b.mostraTipo();

 }
}
In questo caso le proprieta' sono marca, colore e motoreacceso mentre i metodi sono mostraTipo e accendiMotore.
Il costruttore e' invece un metodo speciale che ha lo stesso nome della classe ed e' richiamato quando si crea un oggetto (dopo "new") per inizializzare le variabili che descrivono lo stesso.In Java cioe' per creare un nuovo oggetto bisogna dichiararlo e quindi chiamare il costruttore. Vedi sopra:
 Moto a = new Moto("Ducati","rossa");
Nota i messaggi all'oggetto creati con la notazione nome_dell_oggetto.nome_del_metodo() ad es. a.accendiMotore().
Ed ora un esempio piu' utile. Riscriveremo il programma che fa la media di una serie di numeri in modo da utilizzare una classe SerieNumeri.
public class SerieNumeri{
      private int serie[];
      private int n;
/*costruttore*/
      public SerieNumeri(String s[]){
       n = s.length;
       serie = new int[n];
       for (int i=0 ;i < n; i++){
         serie[i] = Integer.parseInt(s[i]);
         }
       }
      /*media*/
      public double media(){
      int totale = 0;
      for(int i=0; i < n; i++){
         totale += serie[i];
         }
      return((float)totale/n);
     }
 }


public class Media2{
      static SerieNumeri a;
    
      public static void main(String args[]){
       a = new SerieNumeri(args);
       System.out.println("La media e' "+a.media());
      }
  }
Le due classi vanno scritte su due diversi files SerieNumeri.java e Media2.java. Per compilare ed eseguire usa i comandi:
javac SerieNumeri.java  Media2.java
java Media2 2 4 8 5 63

INDIETRO a Imparate Java in un'ora
Maintained by :info@zitogiuseppe.com.Last revised : .