Annuncio pubblicitario

Se ne hai fatto un po ' programmazione per principiantio hai persino iniziato a guardare lingue diverse, probabilmente hai trovato la frase "programmazione orientata agli oggetti" (o "OOP").

Ci sono ogni sorta di spiegazioni tecniche su cosa sia, ma oggi daremo un'occhiata alla definizione della programmazione orientata agli oggetti in modo semplice.

Prima di iniziare: linguaggi procedurali

Per capire cos'è un linguaggio di programmazione orientato agli oggetti, devi capire cosa è stato sostituito. I primi linguaggi di programmazione erano procedurali, i cosiddetti perché il programmatore avrebbe definito una serie molto specifica di procedure che il computer avrebbe intrapreso.

Cos'è la programmazione orientata agli oggetti e come iniziare ad impararla

Nei primi giorni, le procedure venivano scritte su schede perforate. Tali passaggi hanno preso i dati, eseguito una sequenza di azioni su tali dati, quindi l'output di nuovi dati.

I linguaggi procedurali hanno funzionato bene per un po '(e alcuni sono ancora in uso). Ma quando vuoi programmare qualcosa al di là di una sequenza base di passaggi, i linguaggi procedurali possono diventare difficili da gestire. È qui che entra in gioco la programmazione orientata agli oggetti.

instagram viewer

L'oggetto della programmazione orientata agli oggetti

Allora, cos'è la programmazione orientata agli oggetti?

Il primo linguaggio orientato agli oggetti (generalmente accettato di essere Simula) ha introdotto l'idea di oggetti. Gli oggetti sono raccolte di informazioni trattate come un'entità singolare.

Ci immergeremo più a fondo in ciò che in realtà significa in un secondo con un esempio, ma prima dobbiamo parlare classi. Le classi sono un po 'come pre-oggetti. Contengono un elenco di attributi che, quando definiti, diventano un oggetto.

Cos'è la programmazione orientata agli oggetti e come iniziare ad impararla

Facciamo l'esempio della programmazione di una partita a scacchi. Potremmo avere una classe chiamata Piece. All'interno di Piece, abbiamo un elenco di attributi:

  • Colore
  • Altezza
  • Forma
  • Movimento consentito

Un oggetto definisce semplicemente un'istanza particolare di una cosa appartenente a quella classe.

Quindi potremmo avere un oggetto chiamato WhiteQueen. Quell'oggetto avrebbe definizioni per tutti e quattro gli attributi (bianco, alto, cilindrico con merlature, qualsiasi numero di spazi in qualsiasi direzione). Potrebbe anche avere metodi o funzioni.

Cosa rende questo molto meglio dell'approccio procedurale?

In breve, linguaggi di programmazione orientati agli oggetti (come Java) semplifica l'organizzazione di dati e codice in un modo più versatile per progetti più grandi.

Per discuterne un po 'più in dettaglio, parleremo delle quattro basi della programmazione orientata agli oggetti.

Programmazione orientata agli oggetti: astrazione

Solo perché vuoi usare qualcosa non significa che devi sapere come funziona. Una macchina per caffè espresso, ad esempio, è complessa. Ma non è necessario sapere come funziona. Devi solo sapere che quando premi "On", otterrai un espresso.

Cos'è la programmazione orientata agli oggetti e come iniziare ad impararla

Lo stesso vale per gli oggetti nella programmazione orientata agli oggetti. Nel nostro esempio di scacchi, potremmo avere un metodo move (). Tale metodo potrebbe richiedere molti dati e altri metodi. Potrebbe essere necessaria la posizione iniziale e le variabili della posizione finale. Potrebbe utilizzare un altro metodo per determinare se è stato catturato un pezzo.

Ma non è necessario saperlo. Tutto quello che devi sapere è che quando dici al pezzo di muoversi, si muove. Questa è astrazione.

Programmazione orientata agli oggetti: incapsulamento

L'incapsulamento è uno dei modi in cui la programmazione orientata agli oggetti crea astrazione. Ogni oggetto è una raccolta di dati trattati come un'unica entità. E all'interno di quegli oggetti ci sono dati, sia variabili che metodi.

Le variabili all'interno di un oggetto sono generalmente mantenute private, il che significa che altri oggetti e metodi non possono accedervi. Gli oggetti possono essere influenzati solo usando i loro metodi.

Un oggetto Bishop può contenere diverse informazioni. Ad esempio, potrebbe avere una variabile chiamata "posizione". Quella variabile è necessaria per usare il metodo move (). E, naturalmente, ha un colore.

Rendendo la variabile di posizione privata e il metodo move () pubblico, un programmatore protegge la variabile di spostamento da qualsiasi altra cosa. E se il colore è una variabile privata, non c'è modo per un altro oggetto di cambiarlo a meno che non esista un metodo che permetta la modifica. (Che probabilmente non avresti avuto, poiché il colore del pezzo dovrebbe rimanere costante.)

Queste variabili e metodi sono mantenuti all'interno dell'oggetto Bishop. Poiché sono incapsulati, un programmatore potrebbe apportare una modifica alla struttura o al contenuto dell'oggetto senza preoccuparsi dell'interfaccia pubblica.

Programmazione orientata agli oggetti: ereditarietà

Oltre alle classi, i linguaggi di programmazione orientati agli oggetti hanno anche sottoclassi. Questi contengono tutti gli attributi della classe genitore, ma possono anche contenere altri attributi.

Nella nostra partita a scacchi, i pedoni hanno bisogno di un metodo che li possa trasformare in altri pezzi se riescono a raggiungere la fine del tabellone. Lo chiameremo metodo transformPiece ().

Non tutti i pezzi richiedono il metodo transformPiece (). Quindi non vorremmo metterlo nella classe Piece. Invece, possiamo creare una sottoclasse chiamata Pawn. Poiché è una sottoclasse, eredita tutti gli attributi da Piece. Quindi un'istanza della sottoclasse Pedone include un colore, altezza, forma e movimento consentiti.

Ma include anche il metodo transformPiece (). Ora non dobbiamo mai preoccuparci di usare accidentalmente quella funzione su una torre. Ecco una spiegazione tecnica:

La creazione di sottoclassi consente inoltre di risparmiare molto tempo. Invece di creare nuove classi per tutto, i programmatori possono creare una classe base e quindi estenderla a nuove sottoclassi quando necessario. (Tuttavia, vale la pena notare che fare eccessivo affidamento sull'eredità è negativo 10 principi di programmazione di base che ogni programmatore deve seguireScrivi sempre il codice che può essere gestito da chiunque possa finire a lavorare sul tuo software. A tal fine, ecco alcuni principi di programmazione per aiutarti a ripulire il tuo atto. Leggi di più .)

Programmazione orientata agli oggetti: polimorfismo

Il polimorfismo è il risultato dell'eredità. La piena comprensione del polimorfismo richiede alcune conoscenze di programmazione, quindi qui seguiremo solo le basi. In breve, il polimorfismo consente ai programmatori di utilizzare metodi con lo stesso nome, ma con oggetti diversi.

Ad esempio, la nostra classe Piece potrebbe avere un metodo move () che sposta un pezzo di uno spazio in qualsiasi direzione. Funziona per il pezzo reale, ma non per nient'altro. Per risolvere questo problema, possiamo definire il nuovo metodo move () nella sottoclasse Rook che definisce il movimento come un numero illimitato di spazi in avanti, indietro, a sinistra o a destra.

Ora, quando un programmatore invoca il metodo move () e usa un pezzo come argomento, il programma saprà esattamente come dovrebbe muoversi il pezzo. Ciò consente di risparmiare un sacco di tempo cercando di capire quale dei molti metodi diversi dovresti usare.

Programmazione orientata agli oggetti in breve

Se la tua testa gira un po 'dopo queste ultime quattro definizioni, non preoccuparti troppo. Ecco le cose principali che devi ricordare:

  • La programmazione orientata agli oggetti raccoglie informazioni in singole entità chiamate oggetti.
  • Ogni oggetto è una singola istanza di una classe.
  • L'astrazione nasconde i meccanismi interni di un oggetto quando non è necessario vederli.
  • L'incapsulamento memorizza le variabili e i metodi correlati all'interno degli oggetti e li protegge.
  • L'ereditarietà consente alle sottoclassi di utilizzare gli attributi delle classi principali.
  • Il polimorfismo consente a oggetti e metodi di affrontare molteplici situazioni diverse con un'unica interfaccia.

Se riesci a ricordare quei punti, avrai una buona idea di cosa sia la programmazione orientata agli oggetti. Le quattro basi della programmazione orientata agli oggetti, come ho già detto, possono essere un po 'difficili da capire. Ma una volta che inizi a programmare, diventeranno più chiari.

Ricorda che abbiamo discusso solo delle generalità in questo articolo. Diversi linguaggi orientati agli oggetti avranno le loro stranezze e modi per far accadere le cose. Una volta tu scegli la lingua giusta per te Cerchi i migliori linguaggi di programmazione? Comincia qui!Che tu sia completamente nuovo nei linguaggi di programmazione o cerchi di entrare in un nuovo tipo di programmazione, una delle domande più importanti da porsi è: "Quale linguaggio di programmazione è giusto per me?" Leggi di più , inizierai a imparare come mette in pratica i principi OOP.

Dann è un consulente di marketing e strategia dei contenuti che aiuta le aziende a generare domanda e lead. Inoltre blog su strategia e content marketing su dannalbright.com.