Metodo (programmazione): differenze tra le versioni

== Caratteristiche ==
Come in una procedura di un [[programmazione procedurale|linguaggio di programmazione procedurale]], un metodo solitamente consiste di:
* una '''firma''' (o ''signature'') ovvero la definizione del metodo con ''tipo di ritorno'', ''nome'' del metodo, tipo e nome degli eventuali ''[[Parametro (informatica)|parametri]]'' passati in [[input]] (detti ''parametri formali''); in genere dunque la definizione di un metodo usa la stessa sintassi impiegata per le procedure (nei linguaggi object-oriented che le supportano), con alcuni indicatori aggiuntivi che consentono di ottenere l'[[incapsulamento (informatica)|incapsulamento]] delle informazioni.
* il '''blocco''' del metodo, opportunamente delimitato da inizio e fine, con all'interno una sequenza di [[Istruzione (informatica)|istruzioni]] scritte per eseguire una determinata azione eventualmente attraverso [[struttura di controllo|strutture di controllo]] del flusso di esecuzione quali [[selezione (informatica)|selezioni]]/controllo e [[iterazione]]/cicli e sulla base dei parametri passati in [[input]], in grado di restituire al programma chiamante un valore di ritorno (o di [[output]]) dello stesso tipo di quello dichiarato nella firma iniziale. Inoltre, nei linguaggi che dispongono di un meccanismo di [[gestione delle eccezioni]], il blocco del metodo può terminare sollevando un'[[eccezione (informatica)|eccezione]] nel caso si verifichi una situazione anomala che impedisce il corretto completamento delle sue operazioni.
 
 
Le differenze fra il concetto generale di sottoprogramma e quello di metodo derivano dal fatto che il metodo viene interpretato come un'operazione eseguita da un oggetto. Per riferirsi all'invocazione di un metodo si usano talvolta locuzioni che rendono più esplicito questo legame; si parla per esempio di ''dare un comando a un oggetto'' o anche ''spedire un messaggio a un oggetto''.<ref>La metafora della chiamata di metodo come ''messaggio'' deriva storicamente dalla terminologia di [[Smalltalk]], uno dei primi [[linguaggio di programmazione|linguaggi di programmazione]] a oggetti, ed è tuttora molto diffusa (in certi contesti, per esempio, viene utilizzata anche nella terminologia del [[linguaggio di modellazione]] [[UML]]).</ref>
 
Molti linguaggi supportano inoltre le tecniche di [[overloading]] e/o [[overriding]] dei metodi.
 
== Sintassi ==
Utente anonimo