L’OOP, sigla che in italiano significa programmazione orientata agli oggetti e che deriva dalla frase inglese object-oriented programming è un modello di programmazione molto usato, cioè uno schema che si usa per scrivere il codice di programmazione. Lo scopo di questo modello, come di altri, è quello di rendere il codice più semplice, chiaro e ordinato.
Nella programmazione l’oggetto è un insieme di variabili e metodi legati tra loro che identificano e caratterizzano l’entità che stiamo creando, spesso degli oggetti di gioco veri e propri. Ciascun oggetto viene nominato da una classe in modo che chi scrive e legge il codice sia consapevole di cosa modificare e cosa no.
Principi della programmazione orientata agli oggetti (OOP)
La programmazione orientata agli oggetti (OOP) si basa su quattro principi guida che permettono di avere un codice molto più pulito e chiaro.
L’astrazione consiste nel rimuovere tutto il codice superfluo e lasciare soltanto ciò di cui si ha davvero bisogno. Ad esempio, le istruzioni if possono essere sintetizzate in modo da scrivere semplicemente la condizione e il metodo da usare. Un esempio è quando si crea un videogioco e si aggiunge un pulsante per chiuderlo: in questo caso si scrive un metodo per uscire dal gioco ma con istruzioni diverse a seconda se si sta giocando davvero oppure lo si sta testando in un programma per creare videogiochi come l’editor di Unity:
//all’inizio #if UNITY_EDITOR using UnityEditor; #endif //metodo per uscire dal gioco public void Esci() { #if UNITY_EDITOR EditorApplication.ExitPlaymode(); #else Application.Quit(); // original code to quit Unity player #endif }
È anche possibile creare delle sottoclassi che acquisiscano tutte caratteristiche di quella madre. In questo modo, se dobbiamo creare degli oggetti simili a quello principale e stabilire delle piccole differenze, non abbiamo bisogno di scrivere tutto il codice, ma soltanto quello che differenzia la classe figlia. Questo processo viene chiamato eredità.
Quando vogliamo usare lo stesso metodo ma con valori diversi su più classi stiamo parlando di polimorfismo ed è molto utile per non scrivere sempre lo stesso codice. L’incapsulamento consiste nel fare in modo che i valori delle variabili e le proprietà degli oggetti non vengano modificate da altri.