Alexxandro ha scritto:
Grazie della risposta.
Mi sembra di capire quindi che è un istanza di se stessa, ma non è reference di nessun puntatore.
Devo rileggere con più attenzione la risp. dopo lavoro.
Grazie ancora!!
Ps.
Qui qualcosa centra con il costruttore.
Quello che ha lo stesso nome di classe senza nessun ritorno.
E' lui allora che istanzia la classe...
Qualche chiarimento in più mi pare necessario
e utile.
Un membro (variabile o metodo) "
di istanza" (
non static) è associato distintamente a ciascun oggetto (=istanza di quella classe). Se una classe X ha un
private String nome;, ciascun oggetto X ha il
suo proprio campo nome distinto da quello di tutti gli altri oggetti. Un oggetto X potrebbe avere nome "Mario", un altro oggetto X nome "Roberto", ecc...
E un metodo di istanza può (ed è quello per cui ha senso che esista) accedere e operare su quello "stato" dell'oggetto.
Un membro (variabile o metodo) "
di classe" (static !) è associato alla classe (non a ciascun distinto oggetto), quindi il membro è "unico" e diciamo "globale", indipendentemente da quanti oggetti vengono istanziati di quella classe.
Non è il costruttore che istanzia un oggetto (non nel senso della memoria). Lo spazio di memoria per un oggetto è allocato dalla JVM. Il costruttore è da vedere come un metodo molto speciale (e che secondo il Java Language Specification non è un "membro" della classe ["
Constructor declarations are not members"]) che viene invocato dalla JVM (e nota, DOPO che lo spazio di memoria per l'oggetto è stato allocato) per 2 scopi principali:
- invocare tassativamente il super-costruttore, quello della super-classe (e la cosa andrà avanti fin su al costruttore di Object).
- eventualmente, se/come necessario, impostare lo "stato" iniziale dell'oggetto per la parte inerente chiaramente a quella classe.