Skillnad mellan dataabstraktion och inkapsling

Huvudskillnaden mellan Data Abstraktion och Encapsulation är att dataabstraktion döljer detaljeringsinformationen och visar endast funktionaliteten till användaren för att minska kodkomplexiteten medan inkapslingen binder eller omsluter data och metoder tillsammans till en enda enhet och döljer detaljerna för dataskydd.

Objektorienterad programmering (OOP) hjälper till att modellera de verkliga världsscenarierna i programvara. Det är ett paradigm eller en metod för att designa ett program med klasser och objekt. En klass är en ritning för att skapa ett objekt. Det är med andra ord en struktur för att skapa objekt. Den består av attribut och metoder. Attributen beskriver egenskaper eller data medan metoderna beskriver operationer eller beteenden. Det är inte möjligt att skapa objekt utan klasser. Därför är ett objekt en förekomst av en klass. Data Abstraktion och Encapsulation är två begrepp i OOP.  

Viktiga områden som omfattas

1. Vad är Data Abstraction
     - Definition, Användning
2. Vad är Encapsulation
     - Definition, Användning
3. Skillnad mellan dataabstraktion och inkapsling
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

Data Abstraktion, Encapsulation, OOP

Vad är Data Abstraction

Data Abstraction avser att gömma de interna detaljerna och bara visa funktionaliteten. Med andra ord döljer det implementeringsdetaljerna och presenterar bara funktionerna för omvärlden. Ett verkligt exempel är en tv. Användaren behöver inte känna till de interna elektroniska kretsarna och funktionerna för att titta på tv. Ett annat exempel är att använda en mobiltelefon. Användaren behöver inte veta intern bearbetning. Han behöver bara veta de viktigaste funktionerna som att ringa, skicka meddelanden eller surfa på internet.

Data Abstraction ger fördelar i mjukvaruutveckling. Viktigast, det minskar kodkomplexiteten. Dessutom döljer den detaljer och avslöjar de väsentliga funktionerna. OOP-stödjande språk bidrar till att uppnå dataabstraktion med abstrakta klasser och gränssnitt.

Vad är Encapsulation

Inkapsling kombinerar data och metoder i en enda enhet. Huvudsyftet med inkapsling är att säkra data. Det liknar en medicinsk kapsel. Medicin är inuti kapseln och den är täckt och skyddad från omvärlden.

Figur 01: Inkapsling

Metoden för att uppnå inkapsling är genom att använda åtkomständringar, såsom "privat" och "offentligt". De ändrar synligheten av data eller metoderna. De privata medlemmarna är endast tillgängliga inom klassen medan de offentliga medlemmarna är tillgängliga inom klassen och i andra klasser.

Det är möjligt att genomföra inkapsling i OOP-språk genom att göra datamedlemmarna eller egenskaperna privata och få tillgång till dem genom offentliga metoder som getters och setters. På samma sätt komprimerar inkapsling data och metod till en enhet. Dessutom ger det skydd för data.

Skillnad mellan dataabstraktion och inkapsling

Definition

Data Abstraction är ett OOP-koncept som döljer implementeringsdetaljerna och visar endast funktionaliteten till användaren. Inkapsling är ett OOP-koncept som binder eller omsluter data och metoder tillsammans till en enda enhet.

Huvudsaklig användning

Data Abstraction döljer detaljerna för implementering för att minska kodkomplexiteten medan inkapslingen döljer data i syfte att skydda data. Detta är huvudskillnaden mellan dataabstraktion och inkapsling med avseende på användningen av de två. 

Metod för att uppnå

OOP-språk använder abstrakta klasser och gränssnitt för att uppnå dataabstraktion. I motsats till detta kan OOP-språk uppnå inkapsling genom att göra datalöarna privata och komma åt dem genom offentliga metoder.

Slutsats

Dataabstraktion och inkapsling är två begrepp i OOP (Object Oriented Programming). Skillnaden mellan dataabstraktion och inkapsling är att dataabstraktionen döljer detaljeringsinformation för att minska kodkomplexiteten medan inkapslingen döljer detaljer för dataskydd.

Referens:

1.Tutorials Point. "Java Encapsulation." Www.tutorialspoint.com, Tutorials Point, 24 mars 2018, Tillgänglig här.
2. "Abstraktion i Java." GeeksforGeeks, 14 Nov. 2017, Tillgänglig här.
3. "Encapsulation in Java." Javatpoint, Tillgänglig här.