# data[].attributes.attachment_link.title
Programmazione orientata agli oggetti - Wikipedia

# data[].attributes.attachment_link.description
In informatica, la programmazione orientata agli oggetti (in inglese object-oriented programming, in acronimo OOP), a volte chiamata semplicemente programmazione a oggetti, è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi. Per “scambio di messaggi” s’intende la capacità degli oggetti di chiamare i metodi pubblici di altri oggetti, per esempio passandogli dati da elaborare e ricevendo il risultato della loro elaborazione. La OOP è particolarmente adatta nei contesti in cui si possono definire delle relazioni di interdipendenza tra i concetti da modellare (contenimento, uso, specializzazione). Un ambito che più di altri riesce a sfruttare i vantaggi della programmazione a oggetti è quello delle interfacce grafiche.

# data[].attributes.attachment_link.description
In questa lezione introdurremo la programmazione orientata agli oggetti, paradigma nato nel 1965 e utilizzato nella maggior parte dei linguaggi di programmazioni

# data[].attributes.body
Dal punto di vista del calcolatore, ogni oggetto è identificato da una certa zona di memoria, nella quale sono memorizzati gli attributi, e il valore di questi ultimi determina lo stato interno dell'oggetto. Istanziare un oggetto vuol dire allocare memoria ed eventualmente inizializzarla secondo le specifiche definite dalla classe.

# data[].attributes.body
Un oggetto è una istanza di una classe. Esso è dotato di tutti gli attributi e i metodi definiti dalla classe, ed agisce come un fornitore di "messaggi" (i metodi) che il codice eseguibile del programma (procedure o altri oggetti) può attivare su richiesta.
Inviare un messaggio ad un oggetto si dice, in gergo tecnico, invocare un metodo su quell'oggetto. Il metodo riceve come parametro l'oggetto su cui è stato invocato, che può essere referenziato tramite una parola-chiave

# data[].attributes.body
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.

# data[].attributes.body
La classe è composta da:

attributi (analoghi ai membri di un record) cioè delle variabili e/o costanti che definiscono le caratteristiche o proprietà degli oggetti instanziabili invocando la classe; i valori inizializzati degli attributi sono ottenuti attraverso il cosiddetto costruttore;

metodi (procedure che operano sugli attributi);

# data[].attributes.body
Le classi definiscono dei tipi di dato e permettono la creazione degli oggetti secondo le caratteristiche definite nella classe stessa. Grazie alle relazioni di ereditarietà, è possibile creare nuove classi a partire da quelle esistenti, estendendole con caratteristiche aggiuntive.

# data[].attributes.body
Il meccanismo dell'ereditarietà che viene utilizzato in fase di strutturazione/definizione/pianificazione del software permette la creazione di nuove classi a partire già da quelle presenti definendone una gerarchia.Una classe derivata dall'ereditarietà presenta i medesimi metodi ed attributi delle classi da cui derivano.Ma tramite un meccanismo detto overriding si possono definire metodi o attributi, e ridefinire il codice stesso.

# data[].attributes.body
incapsulamento

ereditarietà

polimorfismo

# data[].attributes.body
La parte del programma che fa uso di un oggetto si chiama client.
Un linguaggio di programmazione è definito ad oggetti quando permette di implementare tre meccanismi usando la sintassi nativa del linguaggio:

# data[].attributes.body
Object Oriented Programming

# data[].attributes.body
La programmazione ad oggetti prevede di raggruppare in una zona circoscritta del codice sorgente (chiamata classe), la dichiarazione delle strutture dati e delle procedure che operano su di esse. Le classi, quindi, costituiscono dei modelli astratti, che a tempo di esecuzione vengono invocate per istanziare o creare oggetti software relativi alla classe invocata. Questi ultimi sono dotati di attributi (dati) e metodi (procedure) secondo quanto definito/dichiarato dalle rispettive classi.

# data[].attributes.body
In ambito informatico,un paradigma di programmazione è uno stile fondamentale di programmazione,ovvero un insieme ti strumenti di tipo concettuali che ci vengono forniti dallo stesso linguaggio di programma per elaborare il codice sorgente del programma stesso.

# data[].attributes.body
fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre

# data[].attributes.body
fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre

# data[].attributes.body
fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre

# data[].attributes.body
I vantaggi principali della programmazione ad oggetti sono:

# data[].attributes.body
In informatica la programmazione orientata agli oggetti è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi.L'ambito più affine all'utilizzo dei vantaggi forniti dalla programmazione ad oggetti è quello delle interfacce grafiche.