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 Giuseppe Zito.Last revised :
.