class Punto
{
int x;
int y;
}
Sopra abbiamo definito una classe Punto.
Il concetto di classe è servito per definire come è fatto un generico punto, ma in questo modo, abbiamo solo definito il concetto di punto, in realtà non abbiamo ancora nessun punto da poter utilizzare.
Nel contesto della programmazione ad oggetti, una classe dovrebbe limitarsi a definire che struttura avranno gli oggetti che da essa saranno istanziati. "Istanziare", come abbiamo già visto, è il termine object oriented che sta per "creare fisicamente", ed il risultato di un’istanza deve essere un oggetto.
Istanzieremo allora oggetti dalla classe Punto, nel modo seguente:
1 class Principale
2 {
3 public static void main(String args[])
4 {
5 Punto punto1;
6 punto1 = new Punto();
7 punto1.x = 2;
8 punto1.y = 6;
9 Punto punto2 = new Punto();
10 punto2.x = 0;
11 punto2.y = 1;
12 System.out.println(punto1.x);
13 System.out.println(punto1.y);
14 System.out.println(punto2.x);
15 System.out.println(punto2.y);
16 }
17 }
La classe Principale, dichiara alla riga 5, un oggetto di tipo Punto e lo chiama punto1 (così come nella classe Punto avevo dichiarato un intero e lo avevo chiamato x). Ma è solamente alla riga 6 che avviene l’istanza della classe Punto. La parola chiave new, di fatto, istanzia la classe Punto. Dalla riga 6 in poi possiamo utilizzare l’oggetto punto1. Precisamente, alle righe 7 e 8, settiamo le coordinate x ed y del punto1, rispettivamente ai valori interi 2 e 6. In pratica, sfruttando la definizione di punto che mi ha fornito la classe Punto, ho creato un oggetto di tipo Punto, che è individuato dal nome punto1. Notiamo anche, l’utilizzo dell’operatore "dot" (che in inglese significa "punto", ma nel senso del simbolo di punteggiatura ".") per accedere alle variabili x e y.
Alla riga 9, però, abbiamo dichiarato ed istanziato in una sola riga di codice un altro oggetto dalla classe Punto chiamandolo punto2. Abbiamo poi settato le coordinate di quest’ultimo rispettivamente a 0 e 1. Abbiamo infine stampato le coordinate di entrambi i punti.