Ciao a tutti, premetto che sono alle prime armi della programmazione con Java.
Spiego il mio dubbio attraverso un esempio, cercando di facilitare la comprensione:
All'interno di una classe "Punto2D" (punto in due dimensioni), che mi permette di definire un punto cartesiano di coordinate (x,y), voglio definire due costruttori:
1.Il primo che inizializzi l'oggetto "punto" con parametri espliciti;
2.Il secondo che faccia la stessa operazione, andando però a creare un oggetto diverso, creando quindi una nuova area di memoria.
La soluzione al "problema" è quella di creare un costruttore di copia (per ipotesi), quindi opero in questo modo (secondo quanto detto dal professore):
public class Punto2D {
//Campi di esemplare
private double x,y;
//Costruttore 1
public Punto2D (int x0, int y0) {
x=x0;
y=y0;
}
//Costruttore 2 di copia
public Punto2D (Punto2D p) {
x=p.x;
y=p.y;
}
}
Non riesco a capire che logica ci sia dietro la scrittura "Punto2D p" tra le parentesi e "p.x" e "p.y" nella definizione dei campi di esemplare.
In sostanza, qualcuno saprebbe spiegarmi come funziona un costruttore di copia e di che sintassi necessita?
Grazie mille