Entriamo adesso nel vivo della trattazione spiegando come si creano classi ed oggetti in Java. Creiamo la nostra classe "Numeri" con due attributi "numeroX" e "numeroY":
public class Numeri {
public int numeroX;
public int numeroY;
}
Come si può vedere un attributo viene dechiarato sencondo la sintassi: ModificatoreDiVisibilità (nell’esempio public), TipoDellaVariabile (nell’esempio int), NomeVariabile(numeroX e numeroY).
Per quanto riguarda la parola chiave public rappresenta un modificatore di visibilità, ovvero indica che numeroX e numeroY sono due attributi che possono essere richiamti anche fuori dalla classe (i modificatori di visibilità verranno analizzati più avanti nella trattazione).
Abbiamo adesso creato la classe "Numeri" e la salviamo in un file chiamto "Numeri.java". Compilando adesso il file con il comando
javac Numeri.java
Così facendo otterremo un file compilato Numeri.class.
Adesso potremo essere tentati di mandare in esecuzione il file (anche se è logico che non faccia niente) con il comando
java Numeri
ma otterremo solamente un messaggio di errore, dato che una classe è soltanto una definizione di una struttura e all’interno della classe che abbiamo scritto non c’è un metodo main nel quale viene istanziata la classe. Definiamo dunque un’altra classe nella maniera seguente e la chiamiamo "Implementazione":
public class Implementazione {
public static void main(String args[]){
//Prima istanza della classe Numeri
Numeri numeri1;
numeri1 = new Numeri();
numeri1.numeroX=2;
numeri1.numeroY=3;
//Seconda istanza della classe numeri
Numeri numeri2;
numeri2 = new Numeri();
numeri2.numeroX=5;
numeri2.numeroY=6;
//Mostriamo a video i valori numeroX e numeroY delle due istanze
System.out.println(numeri1.numeroX); //Stampa 2
System.out.println(numeri1.numeroY); //Stampa 3
System.out.println(numeri2.numeroX); //Stampa 5
System.out.println(numeri2.numeroY); //Stampa 6
}
}
Come possiamo vedere la classe "Implementazione" contiene il solo metodo main che in java costituisce il punto d’inizio per l’esecuzione del programma. Quindi all’interno del main saranno presenti le istanze della classe e tutti le chiamate ai metodi relativi. La prima cosa che può richiamare l’occhio del lettore è il parametro String args[] il cui significato è quello di salvare nell’array args (gli array verranno presentati in maniera più approfondita successivamente) eventuali stringhe scritte dall’utente in fase di lancio del programma. Per fare chiarezza, se lanciassimo (dopo aver compilato) la classe Implementazione con il seguente comando “java Implementazione HELLO WORLD” avremo che la stringa HELLO verrà salvata nella posizione 0 dell’array args (args[0]=HELLO) e WORLD verrà salvato nella posizione 1 dell’array args (args[1]=WORLD).Per quanto riguarda la creazione di un oggetto vediamo che essa è eseguita in due step: prima di tutto viene dichiarata una variabile di tipo Numeri (Numeri numeri1;) e poi avviene la creazione vera e propria con la parola chiave new (numeri1 = new Numeri()). Leggendo il listato completo della classe Implementazione si nota che vengono creati due oggetti (numeri1 e numeri2) di una stessa classe. I due oggetti sono completamente distinti, come abbiamo precedentemente detto, infatti le stampe degli attributi dei due oggetti presentano i valori corretti precedentemente settati.
Per quanto riguarda il settaggio dei dati possiamo vedere che avviene tramite il punto "." che di fatto permette l’accesso agli attributi di quell’oggetto. Quindi il significato della stringa numeri1.numeroX=2; è accedi all’oggetto identificato da numeri1 e inserisci il valore 2 nell’attributo numeroX.
Il metodo System.out.println(), infine, permette di stampare a video il valore di una variabile o il risultato che ritorna un determinato metodo.