Programmazione ad oggetti: (OOP, Object Oriented Programming) 17/09/2014
Il concetto che sta alla
base della programmazione ad oggetti è quello della classe. La classe
è infatti il progetto dell'oggetto.
Le classi
definiscono dei tipi di dato e permettono la creazione degli oggetti
secondo le caratteristiche definite nella classe stessa; il concetto alla base
della classe è quello delle strutture visto l'anno scorso, la differenza che distingue una classe da una
struttura è che all'interno della classe possono essere presenti anche delle
funzioni.
In particolare le variabili
della classe vengono denominate proprietà o attributi, le
funzioni invece metodi.
Da una classe può
essere creato un oggetto (tecnicamente un oggetto è un istanza di una classe)
il quale conterrà tutti gli attributi e i metodi definiti dalla classe.
*!* La
Classe è il progetto
di un Oggetto, un esempio di classe in C è la dichiarazione di
variabile int
Lavorativamente parlando
possiamo distingue due tipi di programmatori nell'ambito della OOP:
1 Programmatore che
progetta l'oggetto (ricordiamo che 1 progetto = più oggetti)
1 Programmatore che
utilizza l'oggetto tramite sua relativa interfaccia
da questo ne
consegue che la prima cosa da imparare è come si utilizza l'interfaccia
dell'oggetto di cui abbiamo bisogno.
Per fare un programma
utilizzando la
OOP abbiamo bisogno
di un IDE (Integrated development
environment) orientato ad oggetti, tra i più diffusi figurano:
JAVA
C#
C++
...
*!*
Questi IDE non sono totalmente OOP in quanto non prevedono l'utilizzo di soli
oggetti, in questo ambito solo il progetto Eiffel si può definire come
totalmente orientato agli oggetti
*!* Framework:
contenitore di oggetti creati per risolvere questioni specifiche.
Come si crea un oggetto?
Un oggetto a livello concettuale
si dichiara come una variabile, nel dettaglio la
Classe rappresenta il
tipo dell'Oggetto.
Vediamo un esempio:
Supponiamo di voler
creare una Classe Persona con all'interno due attributi nome, stipendio e una
funzione f:
Class Persona
{
char nome[15];
int stipendio;
f();
}Dipendente;
notiamo che è del tutto simile a
una dichiarazione di una struttura (a parte per la presenza di una funzione al
suo interno). Nel nostro esempio la
Classe Persona è il
progetto e la variabile Dipendente è l'oggetto; così facendo abbiamo creato una
Classe Persona con due campi e istanziato l'oggetto Dipendente.
*!* Per
accedere ai campi di un oggetto si utilizza (come per le strutture) la
notazione puntata: Dipendente.nome