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.

Kapselointi sisään Java

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ä.

Kapselointi sisään Java

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.

Kapselointi sisään Java

Lähestymistapa 2: Hakkerin ensimmäinen lähestymistapa ei onnistunut tallettamaan summaa. Seuraavaksi hän yrittää tallettaa summan -100 käyttämällä "talletusmenetelmää".

Kapselointi sisään Java

Mutta menetelmän toteutuksessa on tarkistus negatiiviset arvot. Joten myös toinen lähestymistapa epäonnistuu.

Kapselointi sisään Java

Näin ollen et koskaan paljasta tietojasi ulkopuoliselle taholle. Mikä tekee sovelluksestasi turvallisen.

Kapselointi sisään Java

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ä.