Oppure

Loading
15/01/07 20:31
gabriel81mi
studiando "la guida completa° di mc graw hill mi sono imbattuto su un codice che non riesco a capire

A a = new A(); // oggetto di tipo A
B b = new B(); // oggetto di tipo B
C c = new C(); // oggetto di tipo C
A r; // ottiene un riferimento di tipo A

quest-ultima riga non riesco a capire a cosa serva e che cosa sia.. (A r;)

mi potete aiutare? grazie






aaa
16/01/07 3:54
pierotofy
Postato originariamente da gabriel81mi:
A a = new A(); // oggetto di tipo A
B b = new B(); // oggetto di tipo B
C c = new C(); // oggetto di tipo C
A r; // ottiene un riferimento di tipo A


E' un esempio per mostrarti la differenza tra oggetto e istanza.

Quando crei un oggetto (usando l'operatore new come nell'esempio) la JVM si occupa di allocare la memoria necessaria a contenere tutti i dati dell'oggetto, di chiamare il costruttore della classe (e quindi di inizializzare le variabili) e di restituire un "puntatore" che viene assegnato alla variabile d'istanza.

Quando invece semplicemente dichiari un'istanza di un oggetto (quindi senza richiamare l'operatore new), crei solamente un "puntatore" di tipo X, quindi nessuna memoria viene allocata e nessun costruttore viene richiamato. In pratica:

A a = new A(); //Crea un oggetto di tipo A chiamato a
A b; //Crea un istanza di tipo A chiamata b
b = a; //L'istanza di b ora punta all'oggetto a e in quanto tale, può accedere a tutti i suoi membri
Il mio blog: piero.dev