Pascal/Costruttori e distruttori: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nuova pagina: {{Pascal}} Quando un oggetto viene creato, vale a dire allocato nella memoria W:heap e avente un puntatore come riferimento, dovrà essere opportunamente inizializzato affinchè i...
 
Nessun oggetto della modifica
Riga 1: Riga 1:
{{Pascal}}
{{Pascal}}


Quando un oggetto viene creato, vale a dire allocato nella memoria [[W:heap]] e avente un puntatore come riferimento, dovrà essere opportunamente inizializzato affinchè il programma funzioni come voluto. Un oggetto, dopo essere stato creato, se non servirà più al programma potrà essere distrutto, liberando le risorse occupate dall'oggetto stesso e, se necessario, eseguire le dovute azioni prima della sua eliminazione.
Quando un oggetto viene creato, vale a dire allocato nella memoria [[W:heap|heap]] e avente un puntatore come riferimento, dovrà essere opportunamente inizializzato affinchè il programma funzioni come voluto. Un oggetto, dopo essere stato creato, se non servirà più al programma potrà essere distrutto, liberando le risorse occupate dall'oggetto stesso e, se necessario, eseguire le dovute azioni prima della sua eliminazione.
La programmazione orientata a gli oggetti fornisce due metodi ad hoc per la costruzione e la distruzione degli oggetti, ovvero i cosiddetti costruttori e distruttori.
La programmazione orientata a gli oggetti fornisce due metodi ad hoc per la costruzione e la distruzione degli oggetti, ovvero i cosiddetti costruttori e distruttori.

==I construttori==
Una macchina quando deve essere accesa e partire deve essere "manovrata" bene affinchè tutto funzioni secondo la nostra intenzione. Se non è ingranata la prima marcia e se non viene premuta la frizione la macchina potrebbe non partire o spegnere il motore a causa del numero basso di giri non appena viene rilasciata la frizione.

Anche un oggetto, in un programma, se non inizializzato correttamente, potrebbe divenire inutile o malfunzionante ai fini del programma. Il Pascal per riferirsi a un metodo che funge da costruttore, utilizza la parola chiave <code>CONSTRUCTOR</code>.
Supponiamo di creare un oggetto che stampa su un ambiente testuale la famosa frase "Hello, world!". Inizializziamo l'oggetto con la posiziione dove dovrà essere stampata la frase, e poi utilizziamo il metodo <code>Stampa</code> per stampare la frase.

<source lang=pascal>
TYPE HelloWorld= Object
PRIVATE
riga,colonna:byte;
PUBLIC
Constructor Init(rig,col:byte);
Procedure Stampa;
End;

Constructor HelloWorld.Init;
BEGIN
riga:=rig;
colonna:=col;
END;
Procedure HelloWorld.Stampa
BEGIN
gotoxy(riga,colonna);
write('Hello, world!');
END;
VAR CiaoMondo:HelloWorld;
BEGIN
CiaoMondo.Init(30,5),
CiaoMondo.Stampa;
readln;
END.
</source>

Il costruttore <code>Init</code> inizializza i campi <code>riga</code> e <code>colonna</code> secondo i parametri passati, <code>Stampa</code> sposta il cursore nel punto indicato dai campi <code>riga</code> e <code>colonna</code>, e stampa finalmente la frase.

I costruttori in un oggetto non sono ovviamente obbligatori, ma se ne raccomanda l'uso.

Versione delle 00:13, 23 giu 2009

Indice del libro

Quando un oggetto viene creato, vale a dire allocato nella memoria heap e avente un puntatore come riferimento, dovrà essere opportunamente inizializzato affinchè il programma funzioni come voluto. Un oggetto, dopo essere stato creato, se non servirà più al programma potrà essere distrutto, liberando le risorse occupate dall'oggetto stesso e, se necessario, eseguire le dovute azioni prima della sua eliminazione. La programmazione orientata a gli oggetti fornisce due metodi ad hoc per la costruzione e la distruzione degli oggetti, ovvero i cosiddetti costruttori e distruttori.

I construttori

Una macchina quando deve essere accesa e partire deve essere "manovrata" bene affinchè tutto funzioni secondo la nostra intenzione. Se non è ingranata la prima marcia e se non viene premuta la frizione la macchina potrebbe non partire o spegnere il motore a causa del numero basso di giri non appena viene rilasciata la frizione.

Anche un oggetto, in un programma, se non inizializzato correttamente, potrebbe divenire inutile o malfunzionante ai fini del programma. Il Pascal per riferirsi a un metodo che funge da costruttore, utilizza la parola chiave CONSTRUCTOR. Supponiamo di creare un oggetto che stampa su un ambiente testuale la famosa frase "Hello, world!". Inizializziamo l'oggetto con la posiziione dove dovrà essere stampata la frase, e poi utilizziamo il metodo Stampa per stampare la frase.

TYPE HelloWorld= Object
                   PRIVATE
                   riga,colonna:byte;
                   PUBLIC
                   Constructor Init(rig,col:byte);
                   Procedure Stampa;
                 End;

Constructor HelloWorld.Init;
BEGIN
   riga:=rig;
   colonna:=col;
END;
Procedure HelloWorld.Stampa
BEGIN
   gotoxy(riga,colonna);
   write('Hello, world!');
END; 
VAR CiaoMondo:HelloWorld;
BEGIN
   CiaoMondo.Init(30,5),
   CiaoMondo.Stampa;
   readln;
END.

Il costruttore Init inizializza i campi riga e colonna secondo i parametri passati, Stampa sposta il cursore nel punto indicato dai campi riga e colonna, e stampa finalmente la frase.

I costruttori in un oggetto non sono ovviamente obbligatori, ma se ne raccomanda l'uso.