Creazione
di un oggetto in JAVA
Quando, precedentemente,
nella definizione della classe Body avevamo avuto ad esempio la
dichiarazione di orbits:
class Body {
public long id num;
public String nameFor;
public Body orbits;
public static long nextID = 0;
}
In questo caso
orbits non è diventato un oggetto ma quella sarà solo
la dichiarazione di un riferimento. Per creare un oggetto in java
abbiamo bisogno, invece di richiamare il metodo new. Ad esempio
per dichiarare un oggetto istanza della classe Body appena definita,
abbiamo:
Body sole = new Body();
In questo modo
verrà creato l'oggetto. A questo punto potremmo aver bisogno
di inizializzare i campi dell'oggetto (che sono quelli specificati
nella classe).
sole.idNum = Body.nextID++;
Il campo idNum
dell'oggetto sole, rappresenta il suo identificatore (numerico).
In questo caso ad ogni oggetto che viene creato, viene incrementato
un contatore che tiene memorizzato il numero di oggetti creati della
classe Body. Il contatore di cui parliamo è la variabile
di classe nextID creata con la parola chiave static.
sole.nameFor = "Sole";
Abbiamo ora assegnato
all'attributo nameFor, che mantiene il nome dell'oggetto, il valore
"Sole".
sole.orbits = null;
Questo è
per dire che il sole è al centro del sistema solare e non
ha un orbita.
Quando viene
richiamato il metodo New. Il sistema runtimr di java alloca tanto
spazio quanto ne serve all'oggetto. Se non c'è abbastanza
spazio disponibile entra in funzione il garbage collector.
GARBAGE COLLECTOR:
Il garbage collector elimina gli elementi privi di riferimento.
A volte la memoria non può essere liberata magari perché
sono aperti i canali di I/O. Essi devono essere chiusi utilizzando
il metodo finalize(). Se il gc non riesce a liberare abbastanza
memoria per l'inserimento di un oggetto chiama l'eccezione OutOfMemory.
ECCEZIONE: L'eccezione
è un oggetto. Bisogna dichiararlo all'interno della classe
e definirlo. Una eccezione può controllare ad esempio che
non si esca subito dal programma se non c'è abbastanza spazio
per allocare un nuovo oggetto.(OutOfMemory).
Alla creazione
di un oggetto gli si può associare uno stato iniziale. Questo
si può fare con i costruttori. |