sabato 23 dicembre 2023

CORSO STRUTTURA DI UN LINGUAGGIO DI PROGRAMMAZIONE: Lezione 9 Programmazione orientata agli oggetti

9.Programmazione orientata agli oggetti

Concetti di Oggetti e Classi

La programmazione orientata agli oggetti (POO) è un paradigma di programmazione che si basa sulla creazione di oggetti e classi. Ecco alcuni concetti chiave:

Classe: Una classe è un modello o un prototipo che definisce gli attributi (dati) e i metodi (funzioni) che un oggetto può avere. Ad esempio, una classe "Auto" potrebbe avere attributi come "marca" e "modello" e metodi come "accelerare" e "fermarsi".

Oggetto: Un oggetto è un'istanza di una classe. Può essere creato a partire dalla classe e rappresenta un'entità con attributi specifici e la capacità di eseguire i metodi definiti nella classe. Ad esempio, un oggetto "auto" specifico potrebbe essere una Toyota Camry con determinati valori per "marca" e "modello".

Ereditarietà: La POO supporta l'ereditarietà, che consente a una classe di ereditare attributi e metodi da un'altra classe. Questo permette la creazione di gerarchie di classi e la riusabilità del codice.

Incapsulamento: L'incapsulamento è il principio che i dati e i metodi che operano su di essi sono raggruppati in una singola unità


Ereditarietà e polimorfismo.

Ereditarietà: In programmazione orientata agli oggetti (POO), l'ereditarietà è un concetto che permette a una classe di ereditare gli attributi e i metodi di un'altra classe. La classe che eredita è chiamata "classe figlia" o "sottoclasse", mentre la classe da cui eredita è chiamata "classe madre" o "superclasse". L'ereditarietà consente la creazione di una gerarchia di classi, in cui le classi figlie ereditano il comportamento e i dati dalla classe madre, ma possono anche estenderlo o sovrascriverlo.

Polimorfismo: Il polimorfismo è un concetto che permette agli oggetti di rispondere in modi diversi alle stesse chiamate di metodo. Questo può avvenire attraverso l'ereditarietà e l'implementazione di metodi con lo stesso nome in classi diverse. Il polimorfismo consente di scrivere codice più generico e flessibile, poiché gli oggetti possono essere trattati in modo polimorfico, indipendentemente dalla loro classe specifica.

Ad esempio, supponiamo di avere una classe madre chiamata "Veicolo" e due classi figlie chiamate "Auto" e "Bicicletta". Entrambe le classi figlie possono avere un metodo chiamato "muoviti". Utilizzando il polimorfismo, è possibile chiamare il metodo "muoviti" su un oggetto senza sapere in anticipo se si tratta di un'auto o una bicicletta.


Incapsulamento e Astrazione

Incapsulamento: L'incapsulamento è un principio di POO che consiste nel nascondere gli attributi e i dettagli implementativi all'esterno di una classe e fornire metodi pubblici per accedere e manipolare quegli attributi. Questo fornisce un livello di protezione per i dati e promuove la modularità del codice. Ad esempio, puoi definire attributi come privati e fornire metodi pubblici per impostarli e ottenerli in modo controllato.

Astrazione: L'astrazione è un concetto che coinvolge la creazione di classi astratte o interfacce che definiscono metodi senza implementazione dettagliata. Le classi concrete che implementano queste classi astratte devono fornire un'implementazione per quei metodi. L'astrazione consente di concentrarsi sui dettagli essenziali e nascondere i dettagli complessi.


L'incapsulamento e l'astrazione lavorano insieme per promuovere la progettazione di codice pulito e manutenibile, garantendo che gli oggetti interagiscano in modo controllato e che i dettagli di implementazione siano nascosti agli utenti delle classi.

Nessun commento:

Posta un commento