Kapsuliavimas į Java OOP su pavyzdžiu

Kas yra „Java“ inkapsuliacija?

„Java“ įkomponavimas yra kintamųjų (duomenų) ir metodų (kodo) sujungimo kaip vieno vieneto mechanizmas. Tai yra informacijos informacijos slėpimo ir duomenų bei objekto elgesio apsaugos procesas. Tai viena iš keturių svarbių OOP koncepcijų. Kapsuliavimo klasę lengva išbandyti, todėl ji taip pat yra geresnė vieneto bandymui.

Šioje pamokoje sužinosite

  • Kas yra „Java“ inkapsuliacija?
  • Sužinokite įklijavimą pavyzdžiu
  • Duomenų slėpimas „Java“
  • „Getter and Setter“ metodai „Java“
  • Abstrakcija ir inkapsuliacija
  • Kapsuliavimo Java privalumai

Spustelėkite čia, jei vaizdo įrašas nepasiekiamas

Sužinokite įklijavimą pavyzdžiu

Norėdami išsamiai suprasti, kas yra kapsuliavimas, apsvarstykite šią banko sąskaitos klasę su indėlių ir balanso metodais

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

Tarkime, kad hakeriui pavyko pasiekti jūsų banko sąskaitos kodą. Dabar jis bando įnešti sumą -100 į jūsų sąskaitą dviem būdais. Leiskite pamatyti jo pirmąjį metodą ar požiūrį.

1 požiūris: manipuliuodamas jis bando įnešti neteisingą sumą (tarkime –100) į jūsų banko sąskaitą.

Dabar kyla klausimas - ar tai įmanoma? Tegul tiria.

Paprastai klasės kintamasis nustatomas kaip „privatus“, kaip parodyta žemiau. Jį galima pasiekti tik klasėje apibrėžtais metodais. Jokia kita klasė ar objektas negali jų pasiekti.

Jei duomenų narys yra privatus, tai reiškia, kad prie jo galima prisijungti tik toje pačioje klasėje. Nė viena išorinė klasė negali pasiekti privačių duomenų narių ar kitos klasės kintamųjų.

Taigi mūsų atveju įsilaužėlis negali įmokėti sumos -100 į jūsų sąskaitą.

2 požiūris : pirmuoju „Hacker“ būdu nepavyko pervesti sumos. Tada jis bando įnešti sumą -100, naudodamas „indėlio“ metodą.

Tačiau metodo įgyvendinimas patikrina neigiamas reikšmes. Taigi antrasis požiūris taip pat nepavyksta.

Taigi jūs niekada neatskleidžiate savo duomenų išorinei šaliai. Dėl to jūsų programa yra saugi.

Galima galvoti apie visą kodą apie kapsulę, o bendrauti galite tik pranešimais. Vadinasi, pavadinimo inkapsuliacija.

Duomenų slėpimas „Java“

Duomenų slėpimas „Java“ yra klasės kintamųjų slėpimas nuo kitų klasių. Jį galima pasiekti tik naudojant dabartinės klasės metodą. Tai slepia išsamią įgyvendinimo informaciją nuo vartotojų. Bet ne tik duomenų slėpimas, bet ir skirtas geresniam susijusių duomenų valdymui ar grupavimui.

Norėdami pasiekti mažesnį „Java“ įterpimo laipsnį, galite naudoti modifikatorius, tokius kaip „apsaugotas“ arba „viešas“. Naudodami kapsulę, kūrėjai gali lengvai pakeisti vieną kodo dalį, nepaveikdami kitos.

„Getter and Setter“ „Java“

„Getter“ ir „Setter“ „Java“ yra du įprasti metodai, naudojami kintamojo reikšmėms gauti ir atnaujinti. Jie daugiausia naudojami kintamųjų reikšmėms kurti, modifikuoti, ištrinti ir peržiūrėti. Setter metodas naudojamas reikšmėms atnaujinti, o getter metodas naudojamas reikšmėms nuskaityti ar gauti. Jie taip pat žinomi kaip aksesuaras ir mutatorius.

Šis kodas yra getter ir setter metodų pavyzdys:

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

Ankstesniame pavyzdyje „getBalance“ () metodas yra „getter“ metodas, nuskaitantis kintamojo account_balance kintamojo vertę, o setNumber () metodas yra setter metodas, nustatantis arba atnaujinantis kintamojo account_number vertę.

Abstrakcija ir inkapsuliacija

Dažnai kapsulės suprantamos abstrakčiai. Pasimokykime-

  • „Encapsulation“ yra daugiau apie tai, kaip pasiekti funkcionalumą
  • Abstrakcija yra daugiau apie tai, ką gali padaryti klasė.

Paprastas pavyzdys norint suprasti šį skirtumą yra mobilusis telefonas. Kai sudėtinga loginės plokštės logika yra įklijuota į jutiklinį ekraną, o sąsaja yra numatyta, kad ją ištrintų.

Kapsuliavimo Java privalumai

  • Kapsuliavimas yra susijęs su duomenimis ir su jais susijusiomis funkcijomis. Čia funkcionalumas reiškia „metodus“, o duomenys - „kintamuosius“
  • Taigi kintamąjį ir metodus laikome vienoje vietoje. Ta vieta yra „klasė“. Klasė yra kapsuliavimo pagrindas.
  • Naudodami „Java Encapsulation“ galite paslėpti (apriboti prieigą) prie svarbiausių duomenų narių savo kode, o tai pagerina saugumą
  • Kaip aptarėme anksčiau, jei duomenų narys yra paskelbtas „privačiu“, prie jo galima prisijungti tik toje pačioje klasėje. Nė viena išorinė klasė negali pasiekti kitos klasės duomenų nario (kintamojo).
  • Tačiau jei jums reikia prieiti prie šių kintamųjų, turite naudoti viešuosius „getter“ ir „setter“ metodus.

Įdomios straipsniai...