logo

Introduzione alla programmazione orientata agli oggetti

Come suggerisce il nome, la programmazione orientata agli oggetti o OOP si riferisce a linguaggi che utilizzano oggetti nella programmazione. La programmazione orientata agli oggetti mira a implementare entità del mondo reale come ereditarietà, occultamento, polimorfismo, ecc. nella programmazione. Lo scopo principale dell'OOP è quello di collegare insieme i dati e le funzioni che operano su di essi in modo che nessun'altra parte del codice possa accedere a questi dati tranne quella funzione.

Concetti OOP:



  • Classe
  • Oggetti
  • Astrazione dei dati
  • Incapsulamento
  • Eredità
  • Polimorfismo
  • Legatura dinamica
  • Passaggio del messaggio

1. Classe:

Una classe è un tipo di dati definito dall'utente. È costituito da membri dati e funzioni membro, a cui è possibile accedere e utilizzare creando un'istanza di quella classe. Rappresenta l'insieme di proprietà o metodi comuni a tutti gli oggetti di un tipo. Una classe è come un progetto per un oggetto.

Per esempio: Consideriamo la classe delle automobili. Potrebbero esserci molte auto con nomi e marchi diversi, ma tutte condivideranno alcune proprietà comuni come tutte avranno 4 ruote, limite di velocità, autonomia di chilometraggio, ecc. Quindi qui, Auto è la classe e ruote, limiti di velocità, il chilometraggio è la loro proprietà.



allinea l'immagine con i css

2. Oggetto:

È un'unità base della programmazione orientata agli oggetti e rappresenta le entità della vita reale. Un Oggetto è un'istanza di una Classe. Quando viene definita una classe, non viene allocata memoria ma quando viene istanziata (ovvero viene creato un oggetto) viene allocata memoria. Un oggetto ha un'identità, uno stato e un comportamento. Ogni oggetto contiene dati e codice per manipolare i dati. Gli oggetti possono interagire senza dover conoscere i dettagli dei dati o del codice dell'altro, è sufficiente conoscere il tipo di messaggio accettato e il tipo di risposta restituita dagli oggetti.

Ad esempio, il cane è un oggetto della vita reale, che ha alcune caratteristiche come colore, razza, abbaio, sonno e mangia.



Oggetto negli OOP

Oggetto

3. Astrazione dei dati:

java converte la stringa in int

L'astrazione dei dati è una delle caratteristiche più essenziali e importanti della programmazione orientata agli oggetti. L'astrazione dei dati si riferisce alla fornitura al mondo esterno solo delle informazioni essenziali sui dati, nascondendo i dettagli di base o l'implementazione. Considera un esempio di vita reale di un uomo che guida un'auto. L'uomo sa solo che premendo l'acceleratore la velocità dell'auto aumenterà o che frenando l'auto si fermerà, ma non sa come premendo l'acceleratore la velocità aumenta, non conosce il meccanismo interno dell'auto o l'implementazione dell'acceleratore, dei freni, ecc. nell'auto. Ecco cos'è l'astrazione.

4. Incapsulamento:

griglia mesh numpy

L'incapsulamento è definito come il raggruppamento dei dati in una singola unità. È il meccanismo che lega insieme il codice e i dati che manipola. In Encapsulation, le variabili o i dati di una classe sono nascosti da qualsiasi altra classe ed è possibile accedervi solo tramite qualsiasi funzione membro della classe in cui sono dichiarati. Come nell'incapsulamento, i dati in una classe sono nascosti alle altre classi, quindi è anche noto come dati nascosti .

Incapsulamento nella programmazione orientata agli oggetti

Considera un esempio reale di incapsulamento, in un'azienda ci sono diverse sezioni come la sezione contabilità, la sezione finanza, la sezione vendite, ecc. La sezione finanza gestisce tutte le transazioni finanziarie e tiene traccia di tutti i dati relativi alla finanza. Allo stesso modo, la sezione vendite gestisce tutte le attività legate alle vendite e tiene traccia di tutte le vendite. Ora potrebbe verificarsi una situazione in cui per qualche motivo un funzionario della sezione finanziaria ha bisogno di tutti i dati sulle vendite in un determinato mese. In questo caso non gli è consentito accedere direttamente ai dati della sezione vendite. Dovrà prima contattare qualche altro responsabile della sezione vendite e poi chiedergli di fornire i dati particolari. Questo è ciò che è l'incapsulamento. Qui i dati della sezione vendite e dei dipendenti che possono manipolarli sono racchiusi sotto un'unica sezione vendite con nome.

5. Eredità:

L'ereditarietà è un pilastro importante dell'OOP (programmazione orientata agli oggetti). La capacità di una classe di derivare proprietà e caratteristiche da un'altra classe è chiamata Ereditarietà. Quando scriviamo una classe, ereditiamo proprietà da altre classi. Quindi, quando creiamo una classe, non abbiamo bisogno di riscrivere tutte le proprietà e le funzioni più e più volte, poiché queste possono essere ereditate da un'altra classe che la possiede. L'ereditarietà consente all'utente di riutilizzare il codice quando possibile e di ridurne la ridondanza.

decomprimere in Linux

Interitanza nella programmazione orientata agli oggetti

6. Polimorfismo:

La parola polimorfismo significa avere molte forme. In parole semplici, possiamo definire il polimorfismo come la capacità di un messaggio di essere visualizzato in più di una forma. Ad esempio, una persona può avere caratteristiche diverse allo stesso tempo. Come un uomo è allo stesso tempo padre, marito, lavoratore. Quindi la stessa persona possiede comportamenti diversi in situazioni diverse. Questo si chiama polimorfismo.

Polimorfismo negli OOP

7. Rilegatura dinamica:

Nell'associazione dinamica, il codice da eseguire in risposta alla chiamata di funzione viene deciso in fase di esecuzione. L'associazione dinamica significa che il codice associato a una determinata chiamata di procedura non è noto fino al momento della chiamata in fase di esecuzione. Associazione dinamica dei metodi Uno dei principali vantaggi dell'ereditarietà è che alcune classi derivate D hanno tutti i membri della classe base B. Una volta che D non nasconde nessuno dei membri pubblici di B, allora un oggetto di D può rappresentare B in qualsiasi contesto dove potrebbe essere usata una B. Questa caratteristica è nota come polimorfismo del sottotipo.

8. Passaggio dei messaggi:

È una forma di comunicazione utilizzata nella programmazione orientata agli oggetti e nella programmazione parallela. Gli oggetti comunicano tra loro inviandosi e ricevendo informazioni. Un messaggio per un oggetto è una richiesta di esecuzione di una procedura e pertanto invocherà una funzione nell'oggetto ricevente che genera i risultati desiderati. Lo scambio di messaggi implica specificare il nome dell'oggetto, il nome della funzione e le informazioni da inviare.

bash elif

Perché abbiamo bisogno della programmazione orientata agli oggetti

  • Per rendere lo sviluppo e il mantenimento dei progetti più semplici.
  • Per fornire la funzionalità di occultamento dei dati utile per problemi di sicurezza.
  • Possiamo risolvere problemi del mondo reale se utilizziamo la programmazione orientata agli oggetti.
  • Garantisce la riusabilità del codice.
  • Ci consente di scrivere codice generico: che funzionerà con una serie di dati, quindi non dobbiamo scrivere cose di base più e più volte.