Kapseldamine Java OOP-desse näitega

Lang L: none (table-of-contents):

Anonim

Mis on Java kapseldamine?

Java kapseldamine on muutujate (andmed) ja meetodite (kood) ühtseks pakkimiseks mehhanism. See on teabe üksikasjade varjamine ning andmete ja objekti käitumise kaitsmine. See on üks neljast olulisest OOP-kontseptsioonist. Kapseldusklassi on lihtne testida, seega on see parem ka üksuste testimiseks.

Selles õpetuses saate teada

  • Mis on Java kapseldamine?
  • Õppige näite abil kapseldamist
  • Andmete varjamine Java-s
  • Getteri ja Setteri meetodid Java-s
  • Abstraktsioon vs kapseldamine
  • Java kapseldamise eelised

Kui videole pole juurdepääsu, klõpsake siin

Õppige näite abil kapseldamist

Kapseldamise üksikasjalikuks mõistmiseks kaaluge järgmist pangakontode klassi koos sissemakse ja saldo meetoditega

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;}}

Oletame, et häkkeril õnnestus pääseda juurde teie pangakonto koodile. Nüüd üritab ta teie kontole summat -100 deponeerida kahel viisil. Vaatame tema esimest meetodit või lähenemist.

1. lähenemisviis: ta proovib koodi manipuleerimisega teie pangakontole kanda vale summa (näiteks -100).

Nüüd on küsimus - kas see on võimalik? Las uurib.

Tavaliselt määratakse klassi muutujaks "privaatne", nagu allpool näidatud. Sellele pääseb juurde ainult klassis määratletud meetoditega. Ükski teine ​​klass ega objekt ei pääse neile juurde.

Kui andmeliige on privaatne, tähendab see, et sellele pääseb juurde ainult sama klassi sees. Ükski väline klass ei pääse juurde privaatandmete liikmele ega muu klassi muutujale.

Nii et meie puhul ei saa häkker summat -100 teie kontole kanda.

2. lähenemisviis : Hackeri esimene lähenemine ei suutnud summat hoiustada. Järgmisena proovib ta deposiidi abil maksta summa -100.

Kuid meetodi juurutamisel kontrollitakse negatiivseid väärtusi. Nii et ka teine ​​lähenemine ei õnnestu.

Seega ei avalda te oma andmeid kunagi välisele osapoolele. Mis muudab teie rakenduse turvaliseks.

Kogu koodi võib mõelda kapslile ja suhelda saab ainult sõnumite kaudu. Siit ka nimede kapseldamine.

Andmete varjamine Java-s

Andmete peitmine Java-s on klassi muutujate peitmine teiste klasside eest. Sellele pääseb juurde ainult nende praeguse klassi meetodi abil. See peidab rakenduse üksikasjad kasutajate eest. Kuid lisaks andmete varjamisele on see mõeldud seotud andmete paremaks haldamiseks või rühmitamiseks.

Java-s väiksema kapseldumise saavutamiseks võite kasutada modifikaatoreid nagu "kaitstud" või "avalik". Kapseldamise abil saavad arendajad koodi ühte osa hõlpsasti muuta, ilma et see muud mõjutaks.

Getter ja Setter Java keeles

Getter ja Setter Java-s on kaks tavapärast meetodit, mida kasutatakse muutuja väärtuste hankimiseks ja värskendamiseks. Neid kasutatakse peamiselt muutujate väärtuste loomiseks, muutmiseks, kustutamiseks ja vaatamiseks. Setter-meetodit kasutatakse väärtuste värskendamiseks ja getter-meetodit väärtuste lugemiseks või hankimiseks. Neid tuntakse ka kui ligipääsu ja muteerijaid.

Järgmine kood on näide getteri ja setteri meetoditest:

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;}}

Ülaltoodud näites on getBalance () meetod getter-meetod, mis loeb muutuja konto_balance väärtust ja meetod setNumber () on setter-meetod, mis määrab või värskendab muutuja konto_number väärtust.

Abstraktsioon vs kapseldamine

Sageli mõistetakse kapseldamist abstraktsiooniga valesti. Laseb õppida

  • Kapseldamine on rohkem selle kohta, kuidas funktsionaalsust saavutada
  • Abstraktsioon on rohkem seotud sellega, mida klass suudab.

Lihtne näide selle erinevuse mõistmiseks on mobiiltelefon. Kui trükkplaadi keeruline loogika on kapseldatud puuteekraanile ja selle abstraktseks saamiseks on ette nähtud liides.

Java kapseldamise eelised

  • Kapseldamine seob andmed ja nende seotud funktsioonid. Funktsionaalsused tähendavad siin "meetodeid" ja andmed "muutujaid"
  • Seega hoiame muutujat ja meetodeid ühes kohas. See koht on "klass". Klass on kapseldamise alus.
  • Java Encapsulationi abil saate oma koodis peita (juurdepääsu piirata) olulistele andmeliikmetele, mis parandab turvalisust
  • Nagu me varem käsitlesime, kui andmeliige kuulutatakse privaatseks, saab sellele juurde pääseda ainult sama klassi piires. Ükski väline klass ei pääse juurde teise klassi andmeliikmele (muutujale).
  • Kui teil on siiski vaja nendele muutujatele juurde pääseda, peate kasutama avalikke "getter" ja "setter" meetodeid.