|
Il linguaggio Java: lez.3
Elenco delle pagine di "Il linguaggio Java: lez.3"
Introduzione al Modulo 3 - Pagina 1
Unità didattica 2.1) - Pagina 2
Unità didattica 2.2) - Pagina 3
Unità didattica 2.3) - Pagina 4
Unità didattica 2.4) - Pagina 5
Unità didattica 2.5) - Pagina 6
Unità didattica 2.6) - Pagina 7
1
|
2 |
3 |
4
6 - Unità didattica 2.5)
- I metodi costruttori
Esistono in Java, dei metodi speciali che hanno delle
"proprietà". Tra questi c’è sicuramente il metodo costruttore.
Questo ha le seguenti caratteristiche:
- Ha lo stesso nome della classe
- Non ha tipo di ritorno
- È chiamato automaticamente (e solamente) ogni volta che viene
istanziato un oggetto, relativamente a quell’oggetto
- È presente in ogni classe.
- Caratteristiche di un costruttore:
Un costruttore ha sempre e comunque lo stesso nome della classe.
Il fatto che non abbia tipo di ritorno non significa che ha tipo di
ritorno void, ma che non
dichiara alcun tipo di ritorno! Nel prossimo esempio è presentata
una classe con un costruttore esplicito:
class Punto
{
public Punto() //metodo costruttore
{
System.out.println("costruito un Punto");
}
int x;
int y;
}
Notare che verrà eseguito il blocco di codice del costruttore,
ogni volta che sarà istanziato un oggetto. Analizziamo meglio la
sintassi che ci permette di istanziare oggetti, per esempio:
Punto punto1 =
new Punto();
E’ la parola chiave new
che istanzia formalmente l’oggetto. La dichiarazione del reference
che precede l’assegnazione, ci permette di avere un riferimento
all’oggetto che si sta creando. Appare evidente che l’ultima parte
da analizzare (Punto()),
non bisogna interpretarla come "nomeDellaClasse con parentesi
tonde", bensì come chiamata al costruttore. Questo, è l’unico modo
per chiamare un costruttore, che mancando di tipo di ritorno, non
può considerarsi un metodo ordinario.
L’utilità del costruttore non è esplicitata con l’esempio appena
proposto! Essendo un metodo (anche se speciale), può avere una lista
di parametri. Di solito un costruttore è utilizzato per
inizializzare le variabili d’istanza di un oggetto. È quindi
possibile codificare il seguente costruttore all’interno della
classe Punto:
class Punto
{
public Punto(int a, int b)
{
x=a;
y=b;
}
int x;
int y;
}
Con questa classe non sarà più possibile istanziare gli oggetti
con la solita sintassi:
Punto punto1 =
new Punto();
otterremmo un errore di compilazione dal momento che staremmo
cercando di chiamare un costruttore che non esiste (senza
parametri)! La sintassi da utilizzare potrebbe essere la seguente,
la quale ci permetterebbe anche d’inizializzare l’oggetto
direttamente senza essere costretti ad utilizzare l’operatore dot:
Punto punto1 =
new Punto(5,6);
- Costruttore di default:
Quando creiamo un oggetto, dopo l’istanza che avviene grazie alla
parola chiave new, c’è
sempre una chiamata ad un costruttore. Il lettore però, potrà ora
obiettare che alle classi utilizzate fino a questo punto, non
abbiamo mai fornito costruttori, eppure, come appena detto, abbiamo
chiamato costruttori ogni volta che abbiamo istanziato degli
oggetti! Java, che è un linguaggio fatto da programmatori per i
programmatori, ed ha una caratteristica molto importante che molti
ignorano. Spesso, alcuni comandi non inseriti dal programmatore,
sono inseriti automaticamente ed implicitamente da Java. In questo
caso (ma non sarà l’unico), Java, se trova sprovvisto di costruttore
una classe, gliene fornisce uno implicitamente che in pratica, non
contiene comandi che provocano qualche conseguenza visibile al
programmatore. Esso è detto "costruttore di default" e non ha
parametri in entrata. Ciò giustifica il fatto che fino ad ora non
abbiamo mai istanziato oggetti passando parametri al costruttore.
Se per esempio codificassimo la classe
Punto nel modo seguente:
class Punto
{
int x;
int y;
}
Al momento della compilazione, il compilatore le aggiungerebbe il
costruttore di default:
class Punto
{
public Punto()
{
//nel costruttore di default
//sembra non ci sia scritto niente . . .
}
int x;
int y;
}
L’argomento sarà approfondito nei prossimi moduli.
N.B.: sottolineiamo una volta di più che il costruttore di
default viene inserito in una classe dal compilatore, solo se il
programmatore non ne ha fornito esplicitamente uno. Nel momento in
cui il programmatore codifica un costruttore all’interno di una
classe, sia esso con parametri o senza parametri, il compilatore non
inserirà quello di default.
N.B.: Questo è una delle caratteristiche che fa si che Java possa
essere definito come linguaggio semplice da apprendere! Il fatto che
venga inserito un costruttore implicitamente all’interno delle
classi, ci ha permesso di parlare di istanze di oggetti senza per
forza dover spiegare un concetto tanto singolare come il
costruttore.
Elenco delle pagine di "Il linguaggio Java: lez.3"
Introduzione al Modulo 3 - Pagina 1
Unità didattica 2.1) - Pagina 2
Unità didattica 2.2) - Pagina 3
Unità didattica 2.3) - Pagina 4
Unità didattica 2.4) - Pagina 5
Unità didattica 2.5) - Pagina 6
Unità didattica 2.6) - Pagina 7
Pagina :
1
|
2 |
3 |
4
Restyling e Aggiornamenti della
sezione manuali e guide a cura di:
Fabrizio
Miceli
|
Tips su sistemi
operativi, registro di configurazione, sicurezza, internet,
navigazione, word ed excel. |
|
|
|
Guide e sulla
configurazione, installazione ed utilizzo di, periferiche,
sistemi operativi ecc... |
|
|