Se trovi utile il mio blog sostienimi con una piccola donazione. GRAZIE

13 – Programmazione ad oggetti

INDICE ARTICOLI

La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione, che prevede la definizione di oggetti software che interagiscono gli uni con gli altri attraverso lo scambio di messaggi.

Un linguaggio di programmazione è definito ad oggetti quando permette di implementare tre meccanismi:

  • incapsulamento
  • ereditarietà
  • polimorfismo

L’incapsulamento prevede di raggruppare in un’unica entità (la classe) la definizione delle strutture dati e delle procedure che operano su di esse. Le classi definiscono per l’appunto degli “oggetti” software dotati di attributi (dati) e metodi (procedure) che operano sui dati dell’oggetto stesso.

In parole povere la classe è la “ricetta” per poter costruire un’oggetto.
Ad esempio se volessimo creare una classe cane definiremmo degli attributi tipo :

  • colore del pelo
  • lunghezza del pelo
  • carattere (aggressivo, affettuoso etc.)
  • etc. etc.

Per completare la classe cane definiremo anche delle procedure :

  • Abbaia
  • Cammina
  • Corri

Una volta definita la classe potremo creare tanti cani che saranno differenti uno dagli altri a seconda di come avremo valorizzato gli attributi.

L’ereditarietà invece è il meccanismo che ci permette di creare una nuova classe partendo da una esistente estendendola creando nuovi metodi o attributi e/o ridefinendone metodi(procedure) o attributi esistenti.

Il polimorfismo indica la possibilità che le classi derivate implementino in modo differente i metodi e le proprietà dei propri antenati rendendo possibile che gli oggetti appartenenti a delle sottoclassi di una stessa classe rispondano diversamente alle stesse istruzioni.
Ad esempio le classi “Cane” e “Gatto” che discendono dalla SuperClasse “Animale” potrebbero avere il metodo mangia() che restituisce la stringa “osso” se eseguito sulla classe “Cane” e “pesce” se eseguito sulla classe “Gatto”.
I metodi che vengono ridefiniti in una sottoclasse sono detti polimorfi, in quanto lo stesso metodo si comporta diversamente a seconda del tipo di oggetto su cui è invocato.

INDICE ARTICOLI