Forskjellen mellom dataabstraksjon og innkapsling

Hovedforskjellen mellom dataabstraksjon og innkapsling er at dataabstraksjon skjuler implementeringsdetaljer og viser kun funksjonaliteten til brukeren for å redusere kodekompleksiteten mens innkapslingen binder eller bryter dataene og metodene sammen i en enkelt enhet og skjuler detaljene for databeskyttelse.

Objektorientert programmering (OOP) bidrar til å modellere de virkelige scenariene i programvare. Det er et paradigme eller en metode for å designe et program ved hjelp av klasser og objekter. En klasse er en tegning for å skape et objekt. Det er med andre ord en struktur for å skape objekter. Den består av attributter og metoder. Attributtene beskriver egenskapene eller dataene mens metodene beskriver operasjonene eller atferdene. Det er ikke mulig å lage objekter uten klasser. Derfor er et objekt en forekomst av en klasse. Dataabstraksjon og innkapsling er to konsepter i OOP.  

Nøkkelområder dekket

1. Hva er dataabstraksjon
     - Definisjon, bruk
2. Hva er Encapsulation
     - Definisjon, bruk
3. Forskjellen mellom dataabstraksjon og innkapsling
     - Sammenligning av nøkkelforskjeller

Nøkkelord

Dataabstraksjon, innkapsling, OOP

Hva er dataabstraksjon

Data Abstraction refererer til å gjemme de interne detaljene og bare vise funksjonaliteten. Med andre ord skjuler den implementeringsdetaljer og presenterer bare funksjonene til omverdenen. Et virkelighetseksempel er en tv. Brukeren trenger ikke å kjenne de interne elektroniske kretsene og funksjonene for å se på fjernsyn. Et annet eksempel er å bruke en mobiltelefon. Brukeren trenger ikke å kjenne intern behandling. Han trenger bare å kjenne de viktigste funksjonene som å ringe, sende meldinger eller surfe på internett.

Data Abstraction gir fordeler i programvareutvikling. Viktigst, det reduserer kodekompleksiteten. Videre gjemmer det detaljer og avslører de essensielle funksjonene. OOP-støttende språk bidrar til å oppnå dataabstraksjon ved hjelp av abstrakte klasser og grensesnitt.

Hva er Encapsulation

Innkapsling kombinerer data og metoder i en enkelt enhet. Hovedformålet med innkapsling er å sikre dataene. Det ligner på en medisinsk kapsel. Medisin er inne i kapselen og den er dekket og beskyttet mot omverdenen.

Figur 01: Innkapsling

Metoden for å oppnå innkapsling er ved å bruke tilgang modifiserer som "privat" og "offentlig". De endrer synligheten til dataene eller metodene. De private medlemmene er kun tilgjengelige i klassen mens de offentlige medlemmene er tilgjengelige i klassen og i andre klasser.

Det er mulig å implementere innkapsling i OOP-språk ved å gjøre dataelementene eller egenskapene private og få tilgang til dem gjennom offentlige metoder som gettere og settere. På samme måte komprimerer innkapsling data og metode til en enhet. Videre gir det beskyttelse for dataene.

Forskjellen mellom dataabstraksjon og innkapsling

Definisjon

Data Abstraction er et OOP-konsept som skjuler implementeringsdetaljer og viser kun funksjonaliteten til brukeren. Innkapsling er et OOP-konsept som binder eller bryter dataene og metodene sammen i en enkelt enhet.

Hovedbruk

Data Abstraction skjuler implementeringsdetaljer for å redusere kodekompleksiteten mens innkapslingen skjuler data for formålet med databeskyttelse. Dette er hovedforskjellen mellom dataabstraksjon og innkapsling med hensyn til bruken av de to. 

Metode for å oppnå

OOP-språk bruker abstrakte klasser og grensesnitt for å oppnå dataabstraksjon. I motsetning kan OOP-språk oppnå Encapsulation ved å gjøre datamedlemmene private og få tilgang til dem gjennom offentlige metoder.

Konklusjon

Dataabstraksjon og innkapsling er to konsepter i OOP (Object Oriented Programming). Forskjellen mellom dataabstraksjon og innkapsling er at dataabstraksjonen skjuler implementeringsdetaljer for å redusere kodekompleksitet mens innkapslingen skjuler detaljer for databeskyttelse.

Henvisning:

1.Tutorials Point. "Java Encapsulation." Www.tutorialspoint.com, Tutorials Point, 24. mars 2018, tilgjengelig her.
2. "Abstraksjon i Java." GeeksforGeeks, 14. november 2017, Tilgjengelig her.
3. "Encapsulation in Java." Javatpoint, tilgjengelig her.