12
OOP PROGRAMMAZIONE AD OGGETTI

Programmazione ad oggetti

  • Upload
    loreprh

  • View
    203

  • Download
    3

Embed Size (px)

DESCRIPTION

OOP

Citation preview

Page 1: Programmazione ad oggetti

OOPPROGRAMMAZIONE AD OGGETTI

Page 2: Programmazione ad oggetti

Prima della OOP

Prima della programmazione orientata agli oggetti c’era un tipo di programmazione non strutturata, il programma era costituito solo da un blocco di codice detto main, i dati venivano manipolati in maniera sequenziale ed erano rappresentati da variabili di tipo globale, insomma era un tipo di programmazione limitata e piena di svantaggi.

Successivamente si usava la programmazione procedurale

La programmazione modulare

E infine quella orientata ad oggetti 

Page 3: Programmazione ad oggetti

La OOP

La programmazione ad oggetti è un sistema complesso, viene visto come un insieme di oggetti che interagiscono tra loro, questi sono caratterizzati da attributi e metodi.

La classe serve a modellare un insieme di oggetti dello stesso tipo.

La programmazione orientata agli oggetti si basa su alcuni concetti fondamentali: Classe

Incapsulamento

Oggetto

Ereditarietà

Polimorfismo

Page 4: Programmazione ad oggetti

CLASSE

E’ un raggruppamento degli oggetti con la stessa proprietà, cioè le sue caratteristiche e gli stessi metodi, cioè le azioni che possono compiere.

Una classe funge da tipo per un determinato oggetto ad essa appartenente.

L’istanza è un determinato oggetto di una classe.

La classe è dotata da un interfaccia e un corpo.

Gli oggetti invece comunicano tra loro tramite la loro interfaccia

Page 5: Programmazione ad oggetti

Incapsulamento

L'incapsulamento è un meccanismo che raccoglie i dati e i metodi all'interno di una struttura nascondendo l'implementazione dell'oggetto, cioè impedendo l'accesso ai dati con altri mezzi diversi dai servizi proposti.

Permette di garantire l'integrità dei dati contenuti nell'oggetto. 

Possiamo definire dei livelli di visibilità degli elementi della classe: privato, pubblico e protetto; definiscono i diritti di accesso ai dati, secondo la classe dalla quale si accede. Privato: classi esterne non possono accedere

Pubblico: tutte le classi, anche esterne possono accedervi

Protetto; ci accedono le classi ereditarie

Page 6: Programmazione ad oggetti

Costruttori e Distruttori

Costruttori: funzioni che creano un oggetto, devono essere richiamati ogni volta che si vuole istanziare un oggetto.

Conversione();

Distruttori: distruggono un oggetto, ne elliminano l’allocazione di memoria.

~Conversione();

Page 7: Programmazione ad oggetti

Interazione tra oggetti

Un oggetto invoca il metodo di un altro oggetto quando vuole avere delle informazioni sul secondo o quando vuole modificarne lo stato, quindi quando vuole conoscere o modificare i suoi attributi.

Page 8: Programmazione ad oggetti

Creazione di una classe

Per definire una classe usiamo la parola class, che ci permette di definire l’interfaccia della classe, seguita dal nome della classe; poi dichiariamo gli elementi protetti e privati:

class esempio{

public:

a;

b;

private:

c;

protected:

d;

}

Page 9: Programmazione ad oggetti

Operatori

L’ operatore new:  alloca la memoria necessaria all’instanziazione dell’oggetto e ne ritorna la relativa locazione di memoria.

L’operatore delete: liberare la memoria utilizzata per l’oggetto, una volta che non ci servirà più.

Per riferirci ai metodi e attributi di un oggetto, invece del punto usiamo l’operatore freccia(->)

Page 10: Programmazione ad oggetti

Classe Astratta

Le classi astratte sono le classi prive di corpo, da sola non può essere istanziata, viene usata solo per svolgere la funzione di classe base, da cui le classi derivate possono ereditarei metodi.

Dichiarazione: abstract class NomeClasse

tecnicamente non si possono creare oggetti della classe, logicamente i suoi oggetti sono solo oggetti delle sottoclassi.

Page 11: Programmazione ad oggetti

Overloading

È una funzionalità specifica del C++

Permette di poter usare lo stesso nome per una funzione più volte all’interno dello stesso programma, a patto che gli argomenti forniti siano diversi

Page 12: Programmazione ad oggetti

I tipi di linguaggi

Linguaggi puri: ogni cosa è un oggetto

- Smalltalk

- Eiffel

Linguaggi ibridi: alcuni tipi di dati non sono oggetti C++

Java

Visual basic