Kapselointi sisään Java
Mitä on kapselointi Java?
Kapselointi sisään Java on mekanismi, joka koota muuttujat (data) ja menetelmät (koodi) yhdeksi yksiköksi. Se on prosessi, jossa piilotetaan tiedot ja suojataan kohteen tietoja ja käyttäytymistä. Se on yksi neljästä tärkeästä OOP-konseptista. Kapselointiluokka on helppo testata, joten se sopii paremmin myös yksikkötestaukseen.
Napauta tätä jos video ei ole saatavilla
Opi kapselointi sisään Java esimerkin kanssa
Ymmärtääksesi tarkemmin, mitä kapselointi on, harkitse seuraavaa pankkitililuokkaa, jossa on talletus- ja saldomenetelmiä
class Account { private int account_number; private int account_balance; public void show Data() { //code to show data } public void deposit(int a) { if (a < 0) { //show error } else account_balance = account_balance + a; } }
Oletetaan, että hakkeri onnistui pääsemään pankkitilisi koodiin. Nyt hän yrittää tallettaa -100 summaa tilillesi kahdella tavalla. Katsotaanpa hänen ensimmäinen menetelmänsä tai lähestymistapansa.
Lähestymistapa 1: Hän yrittää tallettaa virheellisen summan (esim. -100) pankkitilillesi manipuloimalla koodia.
Nyt kysymys kuuluu - Onko se mahdollista? Antaa tutkia. Yleensä luokan muuttuja asetetaan "yksityiseksi" alla olevan kuvan mukaisesti. Sitä voidaan käyttää vain luokassa määritetyillä menetelmillä. Mikään muu luokka tai objekti ei voi käyttää niitä.
Jos datajäsen on yksityinen, se tarkoittaa, että sitä voidaan käyttää vain samassa luokassa. Mikään ulkopuolinen luokka ei pääse käsiksi toisen luokan yksityiseen datajäseneen tai muuttujaan. Joten meidän tapauksessamme hakkeri ei voi tallettaa -100 summaa tilillesi.
Lähestymistapa 2: Hakkerin ensimmäinen lähestymistapa ei onnistunut tallettamaan summaa. Seuraavaksi hän yrittää tallettaa summan -100 käyttämällä "talletusmenetelmää".
Mutta menetelmän toteutuksessa on tarkistus negatiiviset arvot. Joten myös toinen lähestymistapa epäonnistuu.
Näin ollen et koskaan paljasta tietojasi ulkopuoliselle taholle. Mikä tekee sovelluksestasi turvallisen.
Koko koodi voidaan ajatella kapselina, ja voit kommunikoida vain viestien kautta. Tästä johtuu nimi kapselointi.
Data piilossa Java
Data piilossa Java piilottaa luokan muuttujat muilta luokilta. Sitä voidaan käyttää vain heidän nykyisen luokkansa menetelmän kautta. Se piilottaa toteutustiedot käyttäjiltä. Mutta enemmän kuin tietojen piilottaminen, se on tarkoitettu liittyvien tietojen parempaan hallintaan tai ryhmittelyyn. Vähemmän kapseloitumisasteen saavuttamiseksi Java, voit käyttää muuntajia, kuten "suojattu" tai "julkinen". Kapseloinnin avulla kehittäjät voivat muuttaa yhtä koodin osaa helposti vaikuttamatta muihin.
Getter ja asettaja sisään Java
Getter ja asettaja sisään Java ovat kaksi tavanomaista menetelmää, joita käytetään muuttujan arvojen hakemiseen ja päivittämiseen. Niitä käytetään pääasiassa muuttujien arvojen luomiseen, muokkaamiseen, poistamiseen ja tarkastelemiseen. Setter-menetelmää käytetään arvojen päivittämiseen ja getter-menetelmää arvojen lukemiseen tai hakemiseen. Ne tunnetaan myös aksessorina ja mutaattorina.
Seuraava koodi on esimerkki getter- ja setter-menetelmistä:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
Yllä olevassa esimerkissä getBalance()-menetelmä on getter-menetelmä, joka lukee muuttujan account_balance arvon ja setNumber()-metodi on setter-metodi, joka asettaa tai päivittää muuttujan account_number arvon.
Abstraktio vs. kapselointi
Usein kapselointi ymmärretään väärin Abstraktio. Opiskellaan-
- Kapselointi on enemmän "miten" toiminnallisuuden saavuttamiseksi
- Abstraktio on enemmän "mitä" luokka voi tehdä.
Yksinkertainen esimerkki tämän eron ymmärtämiseksi on matkapuhelin. Kun piirilevyn monimutkainen logiikka on kapseloitu kosketusnäyttöön, ja käyttöliittymä on tarkoitettu sen abstraktioimiseksi.
Sisäänkapseloinnin edut Java
- Kapselointi sitoo tiedot siihen liittyvine toimintoineen. Tässä toiminnallisuudet tarkoittavat "menetelmiä" ja data "muuttujia"
- Pidämme siis muuttujat ja menetelmät yhdessä paikassa. Se paikka on "luokka". Luokka on kapseloinnin perusta.
- Kanssa Java Kapselointi, voit piilottaa (rajoittaa pääsyä) koodisi kriittisille datajäsenille, mikä parantaa turvallisuutta
- Kuten aiemmin keskustelimme, jos datajäsen on julistettu "yksityiseksi", sitä voidaan käyttää vain samassa luokassa. Mikään ulkopuolinen luokka ei pääse käsiksi toisen luokan datajäseneen (muuttujaan).
- Jos kuitenkin haluat käyttää näitä muuttujia, sinun on käytettävä julkinen "saattaja" ja "setteri" menetelmiä.