Hermetyzacja w Java
โก Inteligentne podsumowanie
Hermetyzacja w Java To mechanizm, ktรณry ลฤ czy zmienne i metody w jednฤ caลoลฤ, jednoczeลnie ukrywajฤ c szczegรณลy wewnฤtrzne. Chroni dane obiektu za pomocฤ pรณl prywatnych i kontrolowanego dostฤpu za pomocฤ publicznych metod getter i setter.

W czym jest enkapsulacja Java?
Hermetyzacja w Java jest mechanizmem do pakowania zmiennych (danych) i metod (kodu) razem jako pojedynczฤ jednostkฤ. Jest to proces ukrywania szczegรณลรณw informacji i ochrony danych i zachowania obiektu. Jest to jeden z czterech waลผnych konceptรณw OOP. Klasa enkapsulacji jest ลatwa do przetestowania, wiฤc jest rรณwnieลผ lepsza do testowania jednostkowego.
Kliknij w tym miejscu jeลli film nie jest dostฤpny
Poznaj enkapsulacjฤ w Java z Przykลadem
Aby zrozumieฤ szczegรณลowo, czym jest enkapsulacja, rozwaลผ nastฤpujฤ cฤ klasฤ kont bankowych z metodami depozytu i salda
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; } }
Zaลรณลผmy, ลผe hakerowi udaลo siฤ uzyskaฤ dostฤp do kodu twojego konta bankowego. Teraz prรณbuje wpลaciฤ kwotฤ -100 na twoje konto na dwa sposoby. Zobaczmy jego pierwszฤ metodฤ lub podejลcie.
Podejลcie 1: Prรณbuje wpลaciฤ nieprawidลowฤ kwotฤ (powiedzmy -100) na Twoje konto bankowe, manipulujฤ c kodem.
Teraz pytanie brzmi โ Czy to moลผliwe? Przyjrzyjmy siฤ temu. Zwykle zmienna w klasie jest ustawiona jako โprywatnaโ, jak pokazano poniลผej. Dostฤp do niej jest moลผliwy tylko za pomocฤ metod zdefiniowanych w klasie. ลปadna inna klasa ani obiekt nie moลผe uzyskaฤ do nich dostฤpu.
Jeลli czลonek danych jest prywatny, oznacza to, ลผe dostฤp do niego jest moลผliwy tylko w obrฤbie tej samej klasy. ลปadna klasa zewnฤtrzna nie moลผe uzyskaฤ dostฤpu do prywatnego czลonka danych lub zmiennej innej klasy. Tak wiฤc w naszym przypadku haker nie moลผe wpลaciฤ kwoty -100 na Twoje konto.
Podejลcie 2: Pierwsza prรณba wpลaty przez hakera zakoลczyลa siฤ niepowodzeniem. Nastฤpnie prรณbuje on wpลaciฤ kwotฤ -100, uลผywajฤ c metody โdepositโ.
Ale implementacja metody sprawdza wartoลci ujemne. Zatem drugie podejลcie rรณwnieลผ koลczy siฤ niepowodzeniem.
Dziฤki temu nigdy nie udostฤpniasz swoich danych podmiotom zewnฤtrznym. Dziฤki temu Twoja aplikacja bฤdzie bezpieczna.
Caลy kod moลผna uznaฤ za kapsuลkฤ, a komunikowaฤ siฤ moลผna tylko za pomocฤ wiadomoลci. Stฤ d nazwa enkapsulacja.
Ukrywanie danych w Java
Ukrywanie danych w Java Ukrywa zmienne klasy przed innymi klasami. Dostฤp do nich jest moลผliwy tylko poprzez metodฤ bieลผฤ cej klasy. Ukrywa szczegรณลy implementacji przed uลผytkownikami. Ale nie tylko ukrywa dane, ale sลuลผy lepszemu zarzฤ dzaniu lub grupowaniu.ping powiฤ zanych danych. Aby osiฤ gnฤ ฤ mniejszy stopieล enkapsulacji w Java, moลผesz uลผywaฤ modyfikatorรณw takich jak โprotectedโ lub โpublicโ. Dziฤki enkapsulacji programiลci mogฤ ลatwo zmieniฤ jednฤ czฤลฤ kodu bez wpลywu na innฤ .
Getter i Setter wchodzฤ Java
Getter i Setter wchodzฤ Java to dwie konwencjonalne metody uลผywane do pobierania i aktualizowania wartoลci zmiennej. Sลuลผฤ gลรณwnie do tworzenia, modyfikowania, usuwania i przeglฤ dania wartoลci zmiennych. Metoda setter sลuลผy do aktualizowania wartoลci, a metoda getter sลuลผy do odczytywania lub pobierania wartoลci. Sฤ one rรณwnieลผ znane jako akcesor i mutator.
Poniลผszy kod jest przykลadem metod getter i setter:
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; } }
W powyลผszym przykลadzie metoda getBalance() jest metodฤ pobierajฤ cฤ , ktรณra odczytuje wartoลฤ zmiennej saldo_konta, a metoda setNumber() jest metodฤ ustawiajฤ cฤ , ktรณra ustawia lub aktualizuje wartoลฤ zmiennej numer_konta.
Abstraccja kontra enkapsulacja
Czฤsto enkapsulacja jest ลบle rozumiana Abstraccja. Pouczmy siฤ-
- Hermetyzacja to bardziej kwestia โjakโ osiฤ gnฤ ฤ funkcjonalnoลฤ
- AbstracW tej kwestii chodzi bardziej o to โcoโ klasa moลผe zrobiฤ.
Prostym przykลadem, ktรณry pozwala zrozumieฤ tฤ rรณลผnicฤ, jest telefon komรณrkowy. W tym przypadku zลoลผona logika pลytki drukowanej jest zamkniฤta w ekranie dotykowym, a interfejs jest dostarczany doโฆtracWytลumacz to.
Zalety enkapsulacji w Java
- Hermetyzacja wiฤ ลผe dane z powiฤ zanymi funkcjami. Tutaj funkcjonalnoลci oznaczajฤ โmetodyโ, a dane oznaczajฤ โzmienneโ
- Dlatego trzymamy zmienne i metody w jednym miejscu. To miejsce to โklasaโ. Klasa jest podstawฤ enkapsulacji.
- Z Java Dziฤki enkapsulacji moลผesz ukryฤ (ograniczyฤ dostฤp) krytyczne elementy danych w swoim kodzie, co poprawia bezpieczeลstwo
- Jak juลผ wczeลniej omawialiลmy, jeลli element danych jest zadeklarowany jako โprywatnyโ, to dostฤp do niego jest moลผliwy tylko w obrฤbie tej samej klasy. ลปadna klasa zewnฤtrzna nie moลผe uzyskaฤ dostฤpu do elementu danych (zmiennej) innej klasy.
- Jeลli jednak chcesz uzyskaฤ dostฤp do tych zmiennych, musisz uลผyฤ publiczny โgetterโ i โsetterโ Metody.






