Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ad oggetti
A. Lorenzi – M. Govoni
INFORMATICA, STRUMENTI E METODI
Per LSA
Atlas
Principali vantaggi:
• facilità di lettura e di comprensione del codice;
• manutenzione del programma;
• robustezza del programma;
• riusabilità di parti di codice.
Oggetti, attributi, metodi
class NomeClasse {
// attributi
tipo1 attributo1;
tipo2 attributo2;
...
// metodi
tipo1 Funzione1() {...};
tipo2 Funzione2() {...};
...
};
Istanze
NomeClasse NomeOggetto;
• L’attributo di un oggetto:
NomeOggetto.NomeAttributo
• Il metodo di un oggetto:
NomeOggetto.NomeFunzione()
Risoluzione della visibilità della classe
tipo NomeClasse::Funzione {
...
return;
}
class Rettangolo {
// attributi
double base, altezza;
public:
// metodi
void Assegna(double, double);
double Area();
};
void Rettangolo::Assegna(double b, double h)
{
base = b;
altezza = h;
}
double Rettangolo::Area()
{
return base*altezza;
}
Costruttore
class Rettangolo {
// attributi
double base, altezza;
public:
// metodi
void Assegna(double, double);
double Area();
// costruttore
Rettangolo() {
base = 0.0;
altezza = 0.0;
}
};
Distruttore
Rettangolo::~Rettangolo() {
cout << "oggetto eliminato" << endl;
}
Costruttore di copia
Rettangolo::Rettangolo(Rettangolo& r) {
base = r.base * 2;
altezza = r.altezza + 5;
}
oggetto.membro
(membro può essere un metodo o un attributo)
L’ereditarietà rappresenta la
possibilità di creare nuove classi a
partire da una classe già esistente
(classe base o superclasse).
La nuova classe eredita tutti gli
attributi e i metodi della classe base
e può essere arricchita con nuovi
attributi e nuovi metodi.
La classe così ottenuta si chiama
classe derivata.
Gerarchia delle classi
La classe derivata da un’altra, usando l’ereditarietà, prende il
nome di sottoclasse.
La classe generatrice di una sottoclasse si chiama superclasse
o sopraclasse.
Ereditarietà singola e multipla
• L’ereditarietà
singola: una
sottoclasse deriva da
un’unica sopraclasse.
• L’ereditarietà
multipla: una classe
deriva da due o più
sopraclassi.
Polimorfismo
(sovraccarico dell’operatore)
definire nuove funzionalità ai vari operatori del
linguaggio (++, – –, =), in modo che il
compilatore sia in grado di comprendere il loro
impiego nei nuovi tipi di dati creati dal
programmatore.
Funzioni virtuali
• Clausola virtual nella dichiarazione dei metodi
della classe base, che saranno sottoposti a
polimorfismo.
class Rettangolo {
protected:
// attributi
double base, altezza;
public:
// metodi
void Assegna(double, double);
virtual double Area();
virtual double Perimetro();
void Stampa();
Rettangolo() : base(0.0),altezza(0.0) { }
~Rettangolo();
};
Vantaggi della programmazione ad oggetti