Abstraktio ja kapselointi ovat molemmat perusobjektiohjelmoinnin (OOP) käsitteitä, joiden avulla voit toteuttaa reaalimaailman objektit ohjelmiin ja koodeihin. Vaikka molemmat kulkevat käsi kädessä, ne ovat hyvin erilaisia toisistaan. Vaikka jokainen menetelmä on kapselointi, se on myös abstraktio. Yksinkertaisesti sanottuna, kun laitat erilaisia asioita kokonaisuuden luomiseksi, luot itse konseptin - abstraktin. Vaikka molemmat ovat teknisesti erottamattomia, heillä ei ole kirjaimellisesti mitään yhteistä. On melkein totta, että jokainen kapselointi on abstraktio, koska he molemmat piilottavat jotain, mutta heillä on kohtuullinen osuutensa eroista.
Abstraktio on perusopetuksen käsite, joka keskittyy vain kohteen asiaankuuluviin tietoihin ja piilottaa kaikki merkityksettömät yksityiskohdat, jotka saattavat olla tai eivät koske yleistä tai erikoistunutta käyttäytymistä. Se piilottaa taustatiedot ja korostaa olennaisia kohtia monimutkaisuuden vähentämiseksi ja tehokkuuden lisäämiseksi. Pohjimmiltaan abstraktio on ohjelmointityökalu monimutkaisuuden hallitsemiseksi. Abstraktio keskittyy ideoihin eikä tapahtumiin. Se piilottaa yksityiskohdat suunnittelutasolla tarjoamalla toiminnallisuutta käyttäjille. Tuloksena olevaa kohdetta voidaan kutsua myös abstraktioksi. Ohjelmoija varmistaa, että nimettyyn kokonaisuuteen sisältyy kaikki olennaiset näkökohdat eikä mikään merkityksettömistä.
Otetaan reaalimaailman esimerkki abstraktiosta. Tarkastellaan tapausta, jossa on ajoneuvo, joka tässä tapauksessa on sinun ajoneuvosi. Mekaanikko yrittää korjata auton tai sanotaan tietyn osan autostasi. Tässä olet käyttäjä ja et halua päästä autosi yksityiskohtiin tai mihin osaan todella rikkoi. Et oikeastaan välitä noista asioista; haluat vain, että ajoneuvo palautetaan alkuperäisessä kunnossa huolehtimatta yksityiskohdista. Joten, sanoit itse mekaanikolle haluamasi erottamalla toteutuksen osan. Tämä on abstraktiota. Olet keskittynyt välttämättömään asiaan, joka on auton korjaaminen, sen sijaan, että keskityisit yksityiskohtiin.
Kotelointi on jälleen yksi OOP-konsepti, joka sitoo tiedot ja toiminnot yhdeksi komponentiksi rajoittaen pääsyä joihinkin komponentteihin. Se on yksi OOP: n peruskäsitteistä, joka käärii tiedot yhdeksi yksiköksi. Teknisesti sanottuna kapselointi tarkoittaa ominaisuuksien piilottamista suojamuuttujille ulkopuolelta, jotta muutos sovelluksen yhdessä osassa ei vaikuta muihin osiin. Päinvastoin, tekemällä tietoja avoimemmiksi, riskit väärinkäyttää tietoja. Se tarjoaa tietojen perusaineiston suojaamalla niitä ulkomaailmalta. Yksinkertaisesti sanottuna se piilottaa lisätiedot ulkomaailmasta.
Otetaan esimerkki Bluetooth-hiirestä. Sinun on tiedettävä vain laitteen käyttäytymisestä huolehtimatta toteutuksen yksityiskohdista, kuten millaisista antureista hiiri on, onko se langaton vai ei, jne. Jokainen yksityiskohta kuvaa hiiren, yksityiskohdista riippumatta, se on vain hiiri. Tarvitset vain käyttöliittymän hiiren käyttämiseen, mikä tässä tapauksessa on hiiren osoitin. Tämä on kapselointia.
Vaikka molemmat ovat OOP: hen liittyviä peruskäsitteitä ja ne ovat teknisesti erottamattomia, niillä on kuitenkin erojaan monissa suhteissa.
Abstraktio | kapselointi |
Siinä käsitellään vain merkityksellisiä yksityiskohtia piilottamalla merkityksettömiä yksityiskohtien vähentämiseksi ja siten tehokkuuden lisäämiseksi. | Se sitoo tiedot ja tiedot yhdeksi kokonaisuudeksi tietojen suojaamiseksi ulkoisilta lähteiltä. |
Se viittaa ajatukseen piilottaa tiedot, joita ei vaadita esitystarkoituksiin. | Se piilottaa tiedot ja koodin rajoittaaksesi ei-toivottua pääsyä. |
Se keskittyy mihin pikemminkin kuin miten. | Se piilottaa sisäisen mekaniikan siitä, kuinka se tekee jotain. |
Se piilottaa tarpeettomat yksityiskohdat suunnittelutasolla. | Se myös piilottaa yksityiskohdat, mutta toteutustasolla. |
Tiedot ja tiedot erotetaan asiaankuuluvista tiedoista. | Tiedot on piilotettu kapseliin, jotta niitä pääsee käsiksi. |
Se käsittelee ideoita eikä tapahtumia. | Ajatuksena on suojata tietoja ulkomaailmalta. |
Se toteutetaan abstraktin luokan ja käyttöliittymän avulla. | Se toteutetaan suojattujen, yksityisten ja paketti-yksityisten käyttöoikeuksien muokkainten avulla. |
Vaikka molemmat ovat tietojen piilottamiseen liittyviä OOP-käsitteitä, ne eroavat toisistaan melko hyvin. Abstraktio liittyy myös piilottamiseen kuten kapselointi, mutta vaikka entinen piilottaa monimutkaisuuden, jälkimmäinen pitää kapseloidut tiedot hallitsemalla pääsyä niihin. Abstraktiolla tarkoitetaan vain välttämättömien piirteiden esittämisen käsitettä piilottamalla merkityksettömät yksityiskohdat sovelluksen monimutkaisuuden vähentämiseksi ja siten lisäämällä tehokkuutta. Kapselointi puolestaan tarkoittaa käsitettä piilottaa kaikki ohjelman sisäiset mekaniikat tietojen suojaamiseksi ei-toivotulta käytöltä. Se sitoo tiedot yhdeksi komponentiksi rajoittamalla pääsyä muihin komponentteihin.