Kapselointi Java OOP: iin esimerkin avulla

Sisällysluettelo:

Anonim

Mikä on Java-kapselointi?

Java: n kapselointi on mekanismi muuttujien (data) ja menetelmien (koodi) käärimiseksi yhdeksi yksiköksi. Se on tietojen piilottaminen ja tietojen ja objektin käyttäytymisen suojaaminen. Se on yksi neljästä tärkeästä OOP-käsitteestä. Kapselointiluokka on helppo testata, joten se on parempi myös yksikötestaukseen.

Tässä opetusohjelmassa opit-

  • Mikä on Java-kapselointi?
  • Opi kapselointi esimerkin avulla
  • Tietojen piilottaminen Java-kielellä
  • Getter- ja Setter-menetelmät Java-kielellä
  • Abstraktio vs. kapselointi
  • Java-kapseloinnin edut

Napsauta tätä, jos video ei ole käytettävissä

Opi kapselointi esimerkin avulla

Harkitse seuraava pankkitililuokka, jossa on talletus- ja näyttötase-menetelmät, jotta ymmärrät, mikä on kapselointi

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} elseaccount_balance = account_balance + a;}}

Oletetaan, että hakkeri onnistui saamaan pääsyn pankkitilisi koodiin. Nyt hän yrittää tallettaa summan -100 tilillesi kahdella tavalla. Katsotaanpa hänen ensimmäinen menetelmä tai lähestymistapa.

Lähestymistapa 1: Hän yrittää tallettaa virheellisen summan (esimerkiksi -100) pankkitilillesi manipuloimalla koodia.

Nyt on kysymys - onko se mahdollista? Anna tutkia.

Yleensä luokan muuttuja asetetaan "yksityiseksi" alla olevan kuvan mukaisesti. Sitä voi käyttää vain luokassa määritellyillä menetelmillä. Mikään muu luokka tai esine ei voi käyttää niitä.

Jos tietojäsen on yksityinen, se tarkoittaa, että sitä voidaan käyttää vain samassa luokassa. Mikään ulkopuolinen luokka ei voi käyttää yksityisen datan jäsentä tai muun luokan muuttujaa.

Joten tapauksessamme hakkeri ei voi tallettaa summaa -100 tilillesi.

Lähestymistapa 2 : Hackerin ensimmäinen lähestymistapa ei onnistunut tallettamaan summaa. Seuraavaksi hän yrittää tallettaa määrän -100 käyttämällä "talletus" -menetelmää.

Menetelmän toteutuksessa on kuitenkin negatiivisten arvojen tarkistus. Joten toinenkin lähestymistapa epäonnistuu.

Siksi et koskaan paljasta tietojasi ulkopuoliselle osapuolelle. Mikä tekee sovelluksestasi turvallisen.

Koko koodi voidaan ajatella kapseliksi, ja voit kommunikoida vain viestien kautta. Tästä syystä nimen kapselointi.

Tietojen piilottaminen Java-kielellä

Datan piilottaminen Java- sovelluksessa on luokan muuttujien piilottaminen muista luokista. Sitä voidaan käyttää vain heidän nykyisen luokan menetelmällä. Se piilottaa toteutuksen yksityiskohdat käyttäjiltä. Mutta enemmän kuin tietojen piilottaminen, se on tarkoitettu liittyvien tietojen parempaan hallintaan tai ryhmittelyyn.

Vähemmän kapseloinnin saavuttamiseksi Java-sovelluksessa voit käyttää muokkaajia, kuten "suojattu" tai "julkinen". Kapseloinnin avulla kehittäjät voivat vaihtaa koodin yhtä osaa helposti vaikuttamatta muihin.

Getter ja Setter Javalla

Getter ja Setter 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 Accessor ja mutator.

Seuraava koodi on esimerkki getter- ja setter-menetelmistä:

class Account{private int account_number;private int account_balance;// getter methodpublic int getBalance() {return this.account_balance;}// setter methodpublic void setNumber(int num) {this.account_number = num;}}

Yllä olevassa esimerkissä getBalance () -menetelmä on getter-menetelmä, joka lukee muuttujan account_balance arvon ja setNumber () -menetelmä on setter-menetelmä, joka asettaa tai päivittää muuttujan account_number arvon.

Abstraktio vs. kapselointi

Usein kapselointi ymmärretään väärin abstraktion kanssa. Opiskellaan-

  • Kapselointi on enemmän "miten" toiminnallisuuden saavuttamiseksi
  • Abstraktio on enemmän siitä, mitä luokassa voi tehdä.

Yksinkertainen esimerkki tämän eron ymmärtämisestä on matkapuhelin. Piirikortin monimutkainen logiikka on kapseloitu kosketusnäyttöön ja liitäntä tarjotaan sen abstraktiksi.

Java-kapseloinnin edut

  • Kapselointi sitoo tiedot ja niihin liittyvät toiminnot. Tässä toiminnot tarkoittavat "menetelmiä" ja tiedot "muuttujia"
  • Joten pidämme muuttujan ja menetelmät yhdessä paikassa. Tuo paikka on "luokka". Luokka on kapseloinnin perusta.
  • Java Encapsulation -sovelluksella voit piilottaa (rajoittaa pääsyä) koodisi kriittisiin tietojäseniin, mikä parantaa turvallisuutta
  • Kuten aiemmin keskustelimme, jos tietojäsen on julistettu "yksityiseksi", sitä voidaan käyttää vain samassa luokassa. Mikään ulkopuolinen luokka ei voi käyttää toisen luokan datajäsentä (muuttujaa).
  • Jos sinun on kuitenkin käytettävä näitä muuttujia, sinun on käytettävä julkisia "getter" - ja "setter" -menetelmiä.