OOP (Object Oriented Programming), in italiano programmazione orientata agli oggetti.

Introduzione

OOP indica una determinata metodologia di pensare e creare software: prendendo spunto dalla realtà ed astraendola, la OOP produce software creando componenti autonomi che interagiscono opportunamente tra di loro.

Questi componenti sono chiamati oggetti e vengono creati realizzando, o istanziando, una classe.


Le classi

Le classi sono l'elemento fondamentale su cui la programmazione orientata agli oggetti si basa: esse sono la rappresentazione dell' idea che sta alla base dell' oggetto da creare.

Una classe, attraverso le sue proprietà ed i suoi metodi, definisce le caratteristiche dell'oggetto e le azioni che esso potrà compiere.

Uno dei concetti fondamentali su cui si basa la OOP è la possibilità di ereditare una classe per crearne una nuova più specializzata.


I concetti fondamentali della OOP

I concetti su cui si fondano le solide basi della OOP sono:

  • Astrazione;
  • Incapsulamento;
  • Ereditarietà;
  • Polimorfismo;


Astrazione


L' astrazione è il processo di creazione di classi ed interfacce di template, o modello, più generiche ed astratte possibili, a partire dai quali verranno costruite altre classi sempre più specializzate.


Incapsulamento


L' incapsulamento è la regola per la quale una classe deve essere progettata in modo tale da proteggere il suo stato interno e nascondere le sue logiche di business agli altri componenti che interagiscono con essa.

Le modalità con cui gli altri oggetti possono interagire con essa sono rappresentate dall' 'interfaccia pubblica definita dalla classe, ovvero l'insieme dei metodi pubblici che essa stessa espone.

Chi utilizzerà la un'istanza di classe così progettata avrà chiare le modalità di utilizzo dell' oggetto senza che ne conosca i meccanismi interni.


Ereditarietà


Il processo di specializzazione alla base della OOP è il risultato che il meccanismo dell' ereditarietà consente di ottenere: una classe creata ereditandone un'altra con un livello di astrazione più alto, avrà tutte le funzionalità della classe genitore (o parent) oltre a nuove caratteristiche che la specializzano, diventando di fatto anch'essa un nuovo modello da specializzare.


Polimorfismo


Il polimorfismo è la capacità che la OOP possiede di creare nuove classi dall'unione di due o più classi ed interfacce.

E' possibile creare nuovi oggetti progettando nuove classi che ereditano caratteristiche e comportamenti da molteplici classi genitrici.


Conclusioni

L'insieme delle caratteristiche affrontate, ed in particolar modo il concetto del polimorfismo, fanno comprendere le infinite potenzialità creative e produttive che la OOP ha donato al mondo della programmazione e della progettazione del software.

Oggi sono molti i linguaggi di programmazione ad oggetti che è possibile studiare ed utilizzare, nei più svariati ambiti, ma tra i più famosi, perchè hanno contribuito ad affermare questo nuovo modo di pensare e creare software, vanno citati C++ e Java.




Articolo a cura di mirkoagrati 00:10, Nov 5, 2009 (CET)


  • Questa pagina è stata modificata per l'ultima volta il 5 nov 2009 alle 00:10.
  • Questa pagina è stata letta 2 303 volte.