Iekapsulēšana Java OOP ar piemēru

Satura rādītājs:

Anonim

Kas ir iekapsulēšana Java?

Iekapsulēšana Java ir mehānisms, lai mainīgos (datus) un metodes (kodu) apvienotu vienā vienībā. Tas ir informācijas detaļu slēpšanas un datu un objekta uzvedības aizsardzības process. Tas ir viens no četriem svarīgiem OOP jēdzieniem. Iekapsulēšanas klasi ir viegli pārbaudīt, tāpēc tā ir labāka arī vienības testēšanai.

Šajā apmācībā jūs uzzināsiet

  • Kas ir iekapsulēšana Java?
  • Uzziniet iekapsulēšanu ar piemēru
  • Datu slēpšana Java
  • Getter un Setter metodes Java
  • Abstrakcija pret iekapsulēšanu
  • Iekapsulēšanas priekšrocības Java

Noklikšķiniet šeit, ja videoklips nav pieejams

Uzziniet iekapsulēšanu ar piemēru

Lai detalizēti saprastu, kas ir iekapsulēšana, apsveriet šādu bankas kontu klasi ar depozīta un parāda atlikuma metodēm

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

Pieņemsim, ka hakerim izdevās piekļūt jūsu bankas konta kodam. Tagad viņš mēģina iemaksāt summu -100 jūsu kontā divos veidos. Ļaujiet redzēt viņa pirmo metodi vai pieeju.

1. pieeja: viņš mēģina iemaksāt jūsu bankas kontā nederīgu summu (teiksim -100), manipulējot ar kodu.

Tagad rodas jautājums - vai tas ir iespējams? Ļaujiet izmeklēt.

Parasti mainīgais klasē tiek iestatīts kā “privāts”, kā parādīts zemāk. Tam var piekļūt tikai ar klasē definētajām metodēm. Neviena cita klase vai objekts tiem nevar piekļūt.

Ja datu dalībnieks ir privāts, tas nozīmē, ka tam var piekļūt tikai tajā pašā klasē. Neviena ārēja klase nevar piekļūt privātiem datu dalībniekiem vai citas klases mainīgajiem.

Tāpēc mūsu gadījumā hakeris nevar iemaksāt summu -100 jūsu kontā.

2. pieeja : Hakera pirmā pieeja neizdevās noguldīt summu. Pēc tam viņš mēģina veikt depozītu -100, izmantojot "depozīta" metodi.

Bet metodes ieviešanai ir jāpārbauda negatīvās vērtības. Tātad arī otrā pieeja neizdodas.

Tādējādi jūs nekad nepakļaujat savus datus ārējai pusei. Kas padara jūsu lietojumprogrammu drošu.

Visu kodu var domāt par kapsulu, un jūs varat sazināties tikai ar ziņām. Tādējādi nosaukums iekapsulēts.

Datu slēpšana Java

Datu slēpšana Java ir klases mainīgo paslēpšana no citām klasēm. Tam var piekļūt tikai ar viņu pašreizējās klases metodi. Tas paslēpj īstenošanas detaļas no lietotājiem. Bet vairāk nekā datu slēpšana, tā ir paredzēta labākai saistīto datu pārvaldībai vai grupēšanai.

Lai panāktu mazāku iekapsulēšanās pakāpi Java, varat izmantot tādus modifikatorus kā "aizsargāts" vai "publisks". Izmantojot iekapsulēšanu, izstrādātāji var viegli mainīt vienu koda daļu, neietekmējot citu.

Getter and Setter Java valodā

Getter un Setter Java ir divas parastās metodes, ko izmanto mainīgā vērtību iegūšanai un atjaunināšanai. Tos galvenokārt izmanto mainīgo vērtību izveidošanai, modificēšanai, dzēšanai un apskatīšanai. Setter metodi izmanto vērtību atjaunināšanai, bet getter metodi - vērtību nolasīšanai vai iegūšanai. Viņi ir pazīstami arī kā piekļuvēji un mutatori.

Šis kods ir getter un setter metožu piemērs:

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

Iepriekš minētajā piemērā getBalance () metode ir getter metode, kas nolasa mainīgā konta_balance vērtību un setNumber () metode ir setera metode, kas iestata vai atjaunina mainīgā konta_numurs vērtību.

Abstrakcija pret iekapsulēšanu

Bieži iekapsulēšanu pārprot ar abstrakciju. Ļauj mācīties-

  • Iekapsulēšana vairāk attiecas uz to, kā sasniegt funkcionalitāti
  • Abstrakcija ir vairāk par to, ko klase var darīt.

Vienkāršs piemērs šīs atšķirības izpratnei ir mobilais tālrunis. Ja shēmas plates sarežģītā loģika ir iekapsulēta skārienekrānā, un ir paredzēts interfeiss, lai to abstrahētu.

Iekapsulēšanas priekšrocības Java

  • Iekapsulēšana ir saistoša datiem un ar tiem saistītajām funkcijām. Šeit funkcionalitātes nozīmē "metodes" un dati nozīmē "mainīgie"
  • Tāpēc mainīgo un metodes mēs glabājam vienuviet. Šī vieta ir "klase". Klase ir pamats iekapsulēšanai.
  • Izmantojot Java iekapsulēšanu, kodā var paslēpt (piekļuvi ierobežot) kritiskiem datu dalībniekiem, kas uzlabo drošību
  • Kā mēs iepriekš apspriedām, ja datu dalībnieku pasludina par privātu, tam var piekļūt tikai tajā pašā klasē. Neviena ārējā klase nevar piekļūt citas klases datu dalībniekam (mainīgajam).
  • Tomēr, ja jums ir jāpiekļūst šiem mainīgajiem, jums jāizmanto publiskās "getter" un "setter" metodes.