La fatica e' inversamente al numero di libri usati.
Se stai tentando di imparare a programmare solo con YouTube e con quello che trovi su Internet, e' certo che troverai difficolta' anche maggiori.
Comunque ...
Il termine
metodo e' un approssimativamente un sinonimo di
funzione e
procedura (termini della programmazione procedurale), usato nella programmazione ad oggetti.
Un
metodo differisce da una
funzione (o da una
procedura) per il fatto che e'
sempre e
neccessariamente associato ad un oggetto.
Scrivere:
risultato = oggetto.funzione(arg1, arg2)
e' piu' o meno equivalente a scrivere
risultato = funzione(oggetto, arg1, arg2)
Il
piu' o meno ha a che fare con alcuni concetti specifici della programmazione ad oggetti: l'
ereditarieta tra classi e l'
override di un metod di una classe padre in una classe figlia.
Ma questo e' un'altro discorso.
Il
costruttore e' un
metodo speciale perche' e' responsabile della
creazione dell'oggetto. Il suo
duale e' il
distruttore responsabile della sua distruzione.
Il
costruttore e' sempre presente in tutti i linguaggi di programmazione ad oggetti. Invece il
distuttore e' presente in modo esplicito solo in alcuni linguaggi, come il C++, mentre in altri linguaggi, come Java, Python, basati su
garbage collector, non e' direttamente accessibile al programmatore (ci sono altri meccanismi per gestire la
distruzione)
Il problema che il
costruttore risolvere e' il seguente:
quando si scrive
autoveicoli fiat = new autoveicoli()
il
runtime del liguaggio deve:
1) allocare lo spazio (un certo numero di byte) necessario per contenere un oggetto del tipo indicato
2) inizializzare le strutture interne dell'oggetto, necessarie a supportare la programmazione ad oggetti, come ad esempio il puntatore verso un'altro oggetto che rappresenta la
classe a cui l'oggetto appena creato appartiene (e che contiene l'informazione relativa all'implementazione dei metodi associati a quella classe)
3) inizializzare i
campi di cui l'oggetto di quella classe e ' composta.
4) ritornare il puntatore all'oggeto al codice chiamante
E' ovvio che prima della chiamata del
costruttore l'oggetto non esiste, e
durante l'esecuzione del costruttore, l'oggetto e'
parzialmente creato. Solo al termine dell'esecuzione del costruttore, l'oggetto puo' considerarsi completamente inizializzato e pronto per essere utilizzato.
Naturalmente c'e' molto altro da dire ...
Per questo ci sono interi capitoli, nei libri ...
Il termine
costrutto (di controllo) e' un sinonimo di
struttura (di controllo).