Astrazione vs incapsulamento: differenza tra astrazione e incapsulamento
Pubblicato: 2021-02-09Sommario
introduzione
Ogni programmatore si impegna a sviluppare un codice pulito e ordinato, e deve usare un'arma adeguata dai concetti di armatura o OOP. L'uso di concetti OOP appropriati ridurrà la complessità e l'entità degli oggetti sarà dissociata con altre parti del codice. Inoltre, migliora la leggibilità e può essere facilmente modificato se necessario.
Inoltre, il concetto OOP come ereditarietà fornisce l'estendibilità del codice. Questi concetti sono utili per definire classi astratte, aggiornare codici implementati in precedenza, implementare un'applicazione per scenari di vita reale.
Astrazione, incapsulamento sono i concetti fondamentali nella programmazione orientata agli oggetti. E ogni programmatore implementa questi concetti per un codice pulito e riutilizzabile. Ma ci sono un numero considerevole di differenze tra questi due concetti, capiamoli in questo articolo.
Per prima cosa, facciamo una breve passeggiata attraverso i concetti di astrazione e incapsulamento.
Astrazione
L'astrazione è un processo per nascondere i dati non necessari e mostrare solo i dati rilevanti. Da un oceano di dati, manteniamo solo la trasparenza di alcuni dati per l'utente. Questo importante concetto nella programmazione orientata agli oggetti ridurrà la complessità del codice e ne aumenterà la leggibilità.
Ad esempio, supponiamo che ci sia stato assegnato un compito per creare un portale di iscrizione ai corsi online e che i campi di dati a nostra disposizione siano {nome, età, occupazione attuale, nome del college, nome del corso, metodo di pagamento, nome del fratello, stato civile, veicolo numero}.
Dopo aver dato un'occhiata ai campi dati disponibili, capiremo che alcuni campi non sono necessari per il portale di iscrizione al corso, campi come {nome del fratello, stato civile, numero del veicolo} non sono obbligatori per l'iscrizione al corso.
Quindi, dobbiamo essere specifici e scegliere solo i dati rilevanti. Ora i campi necessari sono {nome, età, occupazione attuale, nome del college, nome del corso, metodo di pagamento}, questo è un esempio di astrazione in OOP perché abbiamo scortato informazioni selezionate da dati interi.
Ora, questi nuovi dati possono essere utilizzati anche per altre applicazioni come il monitoraggio dello stato del corso, il record di completamento del corso, ecc. Possiamo utilizzare gli stessi dati senza alcuna modifica.
Molte persone si confondono spesso sull'astrazione e sulla classe astratta, quindi sono entrambe correlate?
Una classe astratta è diversa dall'astrazione, le classi/metodi astratti vengono creati con l'intenzione di implementarli nella classe figlia o nella sottoclasse. Mentre l'astrazione sta semplicemente nascondendo i dati e mostrando solo i dati rilevanti utilizzando specificatori di accesso come pubblico, protetto, privato.
Incapsulamento
L'incapsulamento lega i membri dati con le variabili membro. Ciò eviterà l'accesso diretto alle variabili, poiché l'accesso diretto alle variabili potrebbe violare la privacy e non sarà possibile nascondere l'implementazione.
Potremmo essere passati attraverso alcuni metodi classici in classe come set e get, dove il metodo set viene utilizzato per aggiornare o allocare un valore a una variabile e il metodo get viene utilizzato per leggere o recuperare il valore di una variabile. Qui possiamo accedere direttamente alle variabili usando l'oggetto di quella classe, ma se vogliamo rendere privata una variabile, dovremmo usare queste impostazioni e ottenere metodi.
Il concetto è semplice, renderemo l'insieme e otterremo i metodi pubblici e le variabili saranno private. Quindi è possibile accedere alle variabili solo tramite i metodi pubblici esterni alla classe poiché gli oggetti privati non sono accessibili all'esterno della classe ma accessibili all'interno della classe. Questo concetto di associazione o raggruppamento di variabili con metodi è chiamato incapsulamento.
Diamo un'occhiata a un semplice programma java per capirlo meglio.
Iscrizione al corso di classe { private String nome_studente; private String nome_corso; public String getName (){ restituisci nome_studente; } public void setName (nome stringa){ questo .nome_studente=nome; } public String getCourse (){ restituisci nome_corso; } public void setCourse (corso d'archi){ questo .nome_corso=corso; } } classe pubblica u pGrad { public static void main (String[] args){ CourseRegistration c= new CourseRegistration(); c.setName( “mithun” ); c.setCourse( "Scienza dei dati" ); System.out.println(c.getName()); System.out.println(c.getCourse()); } } |
Nel codice sopra, abbiamo creato una classe CourseRegistration, in cui le variabili membro nome studente e nome corso sono private, ma stiamo accedendo ad essa in un'altra classe usando le funzioni set name e get name. Nella classe principale, abbiamo creato un oggetto di tipo CourseRegistration. Stiamo inizializzando e accedendo alle variabili membro utilizzando le funzioni set e get.
Ora che abbiamo visto la definizione e l'esempio di astrazione, discutiamo i vantaggi e le differenze tra astrazione e incapsulamento.
Vantaggi dell'astrazione
- La riservatezza dei dati è mantenuta poiché solo i dati rilevanti sono visibili all'utente.
- Riduce la complessità del codice e aumenta la leggibilità.
- La classe che implementa l'astrazione può essere utilizzata come classe genitore ereditandole, migliorando così la riutilizzabilità e riducendo la duplicazione.
Vantaggi dell'incapsulamento
- Aiuta a vincolare i membri dati con le funzioni membro.
- Migliora l'efficienza e la facilità d'uso per l'analisi degli errori.
- Fornisce flessibilità al programmatore nel controllare l'accessibilità e la trasparenza dei dati.
Differenza tra astrazione e incapsulamento
Definizione
- L'astrazione nasconde i dettagli e l'implementazione del codice.
- L'incapsulamento nasconde i dati e controlla la visibilità del codice.
Fase
- L'astrazione è un processo a livello di progettazione.
- L'incapsulamento è un processo a livello di implementazione.
Abilità fondamentale
- L'astrazione riguarda ciò che può fare un'istanza di classe, invece dell'implementazione della classe.
- L'incapsulamento aiuta nell'associazione dei dati e nel controllo sul mantenimento della trasparenza dei dati.
Caso d'uso
- L'astrazione è un processo a livello di progettazione e viene utilizzato per ridurre la complessità nella fase di progettazione di un progetto.
- L'incapsulamento è un processo a livello di implementazione e viene utilizzato per garantire la privacy e mantenere il controllo sulla trasparenza dei dati nella fase di implementazione di un progetto.
Come implementare
- L'astrazione può essere ottenuta utilizzando la classe e le interfacce in java.
- L'incapsulamento viene implementato anche utilizzando le classi e il controllo sulla privacy dei dati si ottiene specificando gli specificatori di accesso come protected, public, private.
Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Conclusione
Abbiamo esaminato l'importanza dei concetti OOP, compreso la definizione di astrazione e incapsulamento. Abbiamo esaminato gli esempi di astrazione e incapsulamento. Abbiamo anche esaminato i vantaggi dell'utilizzo di concetti OOP come l'astrazione e l'incapsulamento. E infine, abbiamo attraversato la differenza tra astrazione e incapsulamento.
Ora che sei a conoscenza della definizione e dell'implementazione dell'astrazione, dell'incapsulamento, prova a implementarli nel tuo codice e prova a ridurre la complessità del codice che scriverai d'ora in poi!
Se sei interessato a saperne di più su Java, lo sviluppo full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, status di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Che cos'è l'astrazione nella programmazione orientata agli oggetti?
L'astrazione nella programmazione orientata agli oggetti è una tecnica per rappresentare le informazioni di alto livello su un problema costruendo un oggetto. L'astrazione viene implementata con l'aiuto dell'interfaccia e l'implementazione dell'interfaccia viene eseguita utilizzando il codice effettivo. L'astrazione viene implementata in cui i dettagli concreti sono nascosti ai moduli di consumo fornendogli un'interfaccia diversa. L'astrazione viene implementata per nascondere i dettagli di implementazione dei dettagli di basso livello. Viene anche utilizzato per nascondere i dettagli complessi e fornire all'utente un'interfaccia più semplice.
Come funzionano le classi e gli oggetti nella programmazione?
Classi e oggetti sono i due concetti principali impiegati in tutti i linguaggi di programmazione orientati agli oggetti. Ogni classe contiene un insieme di variabili e metodi che può utilizzare e manipolare. In un linguaggio di programmazione orientato agli oggetti, tutti gli oggetti in un programma hanno un tipo specifico e le variabili ei metodi di un oggetto possono essere manipolati solo da metodi dello stesso tipo. Nella maggior parte dei linguaggi orientati agli oggetti, la classe viene utilizzata per creare un oggetto e viceversa. Un programma orientato agli oggetti è composto da oggetti, procedure e tipi di dati. Tutto in un programma orientato agli oggetti, inclusi dati e codice, è un oggetto.
Quali sono le differenze tra incapsulamento e astrazione?
L'astrazione è un metodo per rimuovere i dettagli non necessari nel codice e concentrarsi sulle parti rilevanti. Ad esempio, invece di scrivere una funzione che moltiplica due numeri, possiamo scrivere una funzione "moltiplica" e usarla per moltiplicare qualsiasi numero con qualsiasi numero. L'astrazione è un modo per rappresentare alcuni dati specifici. L'incapsulamento è un modo per nascondere la complessità di qualcosa ed esporre solo le parti che desideri esporre. Ad esempio, se hai una classe che ha uno o più campi privati che usi per archiviare i dati, allora sei in incapsulamento. La classe contiene i dati e dispone di metodi che espongono i dati pubblici.