Programmazione orientata agli oggetti: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Collegamenti esterni: Rimosso link promozionale +fix stile |
Nessun oggetto della modifica |
||
Riga 5:
Tra gli altri vantaggi della programmazione orientata agli oggetti:
*
* permette una più facile gestione e manutenzione di progetti di grandi dimensioni;
* l'organizzazione del [[codice sorgente|codice]] sotto forma di [[Classe (informatica)|classi]] favorisce la [[modularità]] e il [[riuso di codice]].
Riga 38:
La classe è composta da:
* ''attributi'' (analoghi ai membri di un [[Struttura dati#Record o struttura|record]]), ossia [[variabile (informatica)|variabili]] e/o [[costante (informatica)|costanti]] che definiscono le caratteristiche o proprietà degli oggetti
* ''metodi'', ossia [[funzione (informatica)|procedure]] che operano sugli attributi.
Riga 47:
=== Oggetti ===
{{vedi anche|Oggetto (informatica)}}
Un oggetto è una istanza di una classe. Esso è dotato di tutti gli attributi e i metodi definiti dalla classe,
Inviare un messaggio ad un oggetto significa, in gergo, invocare un metodo su quell'oggetto. Il metodo riceve come parametro (spesso implicito) l'oggetto su cui è stato invocato, che può essere referenziato tramite una parola-chiave o una sintassi apposita, anche se è passato come parametro implicito; per esempio, in [[C++]], in [[Java (linguaggio di programmazione)|Java]], e in [[C sharp|C#]] si usa la parola-chiave <code>this</code> (<code>$this</code> in PHP), mentre in [[Smalltalk]], in [[Objective C|Objective-C]], [[Python]] e in [[Ruby (linguaggio di programmazione)|Ruby]] si usa la parola-chiave <code>self</code>.
Riga 57:
== Incapsulamento ==
{{Vedi anche|Incapsulamento (informatica)}}
L{{'}}''incapsulamento'' è la proprietà per cui i dati che definiscono lo stato interno di un oggetto e i metodi che ne definiscono la logica sono accessibili ai metodi dell'oggetto stesso, mentre non sono visibili ai client. Per alterare lo stato interno dell'oggetto, è necessario invocarne i metodi pubblici, ed è questo lo scopo principale dell'incapsulamento. Infatti, se gestito opportunamente, esso permette di vedere l'oggetto come una ''[[Modello black box|black-box]]'', cioè una "scatola nera" con la quale l'interazione avviene solo e solamente tramite i metodi definiti dall'interfaccia. Il punto è dare delle funzionalità agli utenti nascondendo i dettagli legati alla loro implementazione. Un esempio potrebbe essere un oggetto "matematica" che, tra le tante operazioni che fornisce,
== Ereditarietà ==
Riga 88:
== Polimorfismo ==
{{Vedi anche|Polimorfismo (informatica)}}
Nella programmazione ad oggetti, con il nome di polimorfismo per inclusione
=== Binding dinamico o polimorfismo orizzontale ===
|