Abstraktion och inkapsling är både grundläggande objektorienterade programmeringsprogram (OOP) som låter dig implementera verkliga objekt i program och koder. Medan båda går hand i hand, är de väldigt olika från varandra. Medan varje metod är en inkapsling är det också en abstraktion. Enkelt uttryckt, när du skapar olika saker för att skapa en enhet, skapar du faktiskt ett koncept - en abstrakt. Medan båda är tekniskt oskiljaktiga har de bokstavligen ingenting gemensamt. Det är nästan sant att varje inkapsling är en abstraktion eftersom de båda gömmer något, men de har sin rättvisa andel av skillnaderna.
Abstraktion är ett grundläggande OOP-koncept som fokuserar på bara relevanta data för ett objekt och döljer alla irrelevanta detaljer som kanske eller inte är för generiskt eller specialiserat beteende. Det döljer bakgrundsinformationen och betonar de väsentliga punkterna för att minska komplexiteten och öka effektiviteten. I grund och botten är abstraktion ett programmeringsverktyg för att hantera komplexitet. Abstraktion fokuserar på idéer snarare än händelser. Det döljer detaljerna på designnivå genom att ge användarna funktionalitet. Det resulterande objektet kan också kallas en abstraktion. Programmeraren ser till att den namngivna enheten kommer att ha alla väsentliga aspekter som ingår och ingen av de irrelevanta.
Låt oss ta ett verkligt exempel på abstraktion. Låt oss överväga ett fordon, vilket i detta fall är ditt fordon. En mekaniker försöker reparera din bil eller låt oss säga en viss del av din bil. Här är du användaren och du vill inte komma in i din bils specifika eller vilken del som faktiskt bröt. Du bryr dig inte egentligen om de sakerna; du vill bara ha ditt fordon tillbaka i sitt ursprungliga skick utan att oroa dig för detaljerna. Så du sa faktiskt till mekanikern vad du vill genom att segregera implementeringsdelen. Detta är abstraktion. Du fokuserade på den viktigaste saken, som får din bil fast, snarare än att fokusera på detaljerna.
Encapsulation är ännu ett OOP-koncept som binder data och funktioner till en enskild komponent samtidigt som åtkomst till vissa komponenter begränsas. Det är ett av de viktigaste grundläggande begreppen för OOP, som omslår data och information under en enda enhet. I tekniska termer innebär inkapsling att dölja attribut för att skydda variabler från extern åtkomst så att förändring i en del av en applikation inte kommer att påverka de andra delarna. Tvärtom riskerar du att använda informationen genom att göra informationen öppnare. Det ger grundläggande integritet till data genom att skydda den från omvärlden. Enkelt uttryckt döljer den extra detaljer från omvärlden.
Låt oss ta ett exempel på en Bluetooth-mus. Du behöver bara veta om enhetens beteende utan att oroa dig för implementeringsdetaljerna som vilken typ av sensorer musen har, det är trådlöst eller inte etc. Varje detalj beskriver musen men oavsett detaljer är det bara en mus. Du behöver bara ett gränssnitt för att använda musen, vilket i detta fall är muspekaren. Detta är inkapsling.
Medan båda är grundläggande begrepp relaterade till OOP och de är tekniskt oskiljaktiga, har de fortfarande sina skillnader i många aspekter.
Abstraktion | inkapsling |
Den behandlar endast relevanta uppgifter genom att gömma de irrelevanta för att minska komplexiteten och därigenom öka effektiviteten. | Den binder data och information tillsammans till en enda enhet för att skydda data från externa källor. |
Det hänvisar till idén att gömma data som inte behövs för presentationsändamål. | Det döljer data och kod för att begränsa oönskad åtkomst. |
Det fokuserar på vad snarare än hur. | Det döljer den inre mekaniken om hur den gör någonting. |
Det döljer de onödiga detaljerna på designnivå. | Det döljer också detaljerna men på implementeringsnivå. |
Information och data är åtskilda från relevanta uppgifter. | Information är gömd i en kapsel för nära åtkomst. |
Det handlar om idéer snarare än händelser. | Tanken är att skydda data från omvärlden. |
Det implementeras med abstrakt klass och gränssnitt. | Det implementeras med hjälp av skyddade, privata och paket-privata åtkomstmodifierare. |
Medan båda är OOP-begrepp relaterade till datafel, är de ganska olika från varandra. Abstraktion hänför sig också till att gömma sig som inkapsling, men medan den förra döljer komplexiteten, håller den senare data som den inkapslar genom att kontrollera åtkomst till dem. Abstraktion hänvisar till konceptet att endast representera de nödvändiga egenskaperna genom att dölja de irrelevanta detaljerna för att minska komplexiteten hos en applikation och därmed öka effektiviteten. Encapsulation, å andra sidan, hänvisar till begreppet att gömma alla interna mekaniker i ett program för att skydda informationen från oönskad åtkomst. Den binder data och information tillsammans till en enskild komponent genom att begränsa åtkomst till andra komponenter.