encapsulation java
Dowiedz się o enkapsulacji w Javie z przykładami, dlaczego jej potrzebujemy, skojarzonymi metodami pobierającymi i ustawiającymi:
W tym samouczku omówimy inną koncepcję OOP - „Hermetyzację”. OOP ma cztery filary, a mianowicie abstrakcję, hermetyzację, polimorfizm i dziedziczenie.
Podczas gdy abstrakcja jest wykorzystywana do ujawnienia tylko istotnych szczegółów użytkownikowi końcowemu, hermetyzacja dotyczy głównie bezpieczeństwa danych. Zapewniając bezpieczeństwo danych, hermetyzacja chroni członków danych przed niepożądanym dostępem poprzez określenie modyfikatorów dostępu, a także łączy dane w jedną jednostkę.
=> Sprawdź idealny przewodnik szkoleniowy języka Java tutaj.
jak zrobić plan testów
Jak więc możemy zdefiniować enkapsulację w Javie?
Definicja hermetyzacji
„Hermetyzację w języku Java można zdefiniować jako mechanizm, w którym dane i metody działające na tych danych są opakowywane w jedną jednostkę”.
Czego się nauczysz:
Co to jest enkapsulacja w Javie
Używając hermetyzacji, możemy również ukryć składowe danych klasy (zmienne) przed innymi klasami. Dostęp do tych zmiennych składowych danych można uzyskać pośrednio za pomocą metod klasy, w której są zadeklarowane. Dostęp do metod z kolei uzyskuje się za pomocą obiektu tej klasy.
Zatem z powyższej definicji wnioskujemy, że ukryliśmy zmienne składowe danych wewnątrz klasy, a także określiliśmy modyfikatory dostępu, aby nie były dostępne dla innych klas.
Zatem hermetyzacja jest również rodzajem „ukrywania danych”, chociaż w dalszej części tego samouczka zobaczymy, że hermetyzacja to nie to samo, co ukrywanie danych.
Powyższy rysunek przedstawia klasę, która jest jednostką hermetyzacji, która łączy dane i metody działające na tych danych w jedną jednostkę.
Ponieważ enkapsulacja dotyczy głównie danych, nazywana jest również „hermetyzacją danych”.
Możemy wizualizować kapsułkowanie jako kapsułkę medyczną. Jak wszyscy wiemy, lek jest zamknięty w kapsułce medycznej. Podobnie dane i metody są zawarte w pojedynczej jednostce w hermetyzacji.
W ten sposób hermetyzacja działa jak tarcza ochronna wokół danych i zapobiega nieautoryzowanemu dostępowi do danych ze świata zewnętrznego. Innymi słowy, chroni wrażliwe dane naszej aplikacji.
W Javie są dwa etapy implementacji enkapsulacji. Oto kroki:
- Użyj modyfikatora dostępu „private”, aby zadeklarować zmienne składowe klasy.
- Aby uzyskać dostęp do tych prywatnych zmiennych składowych i zmienić ich wartości, musimy zapewnić odpowiednio publiczne metody pobierające i ustawiające.
Zaimplementujmy teraz przykład enkapsulacji w Javie.
Przykład enkapsulacji Java
//Student_Id and name bundled in a unit 'Student' => encapsulation class Student { private int Student_Id; private String name; //getters, setters for Student_Id and name fields. public int getId() { return Student_Id; } public void setId(int s_id) { this.Student_Id = s_id; } public String getname() { return name; } public void setname(String s_name) { this.name = s_name; } } class Main{ public static void main(String() args) { //create an object of Student class Student s=new Student(); //set fields values using setter methods s.setId (27); s.setname('Tom Lee'); //print values using getter methods System.out.println('Student Data:' + '
Student ID:' + s.getId() + ' Student Name:' + s.getname()); } }
Wynik:
W powyższym programie deklarujemy klasę, która jest jednostką hermetyzacji. Ta klasa Student zawiera dane (Student_Id i nazwa) oraz metody odczytu i ustawiania wartości dla tych elementów członkowskich w jedną jednostkę.
Zwróć uwagę na modyfikatory dostępu skojarzone z polami składowymi. Oba pola członkowskie są prywatne, więc nie są dostępne poza klasą studenta.
Udostępniamy metody pobierające (getId i getname) do odczytu wartości tych pól i metody ustawiające (setId i setname) do ustawiania wartości dla tych metod. Jest to jedyny dostęp, jaki mają i również należy go wykonać za pomocą obiektu klasy Student.
Metody pobierające i ustawiające
Aby zaimplementować hermetyzację w Javie, ustawiamy zmienne składowe danych klasy jako prywatne. Teraz te zmienne prywatne nie są dostępne dla niczego poza klasą, w tym dla obiektu klasy.
Oznacza to, że mamy następującą klasę ABC.
class ABC {
int wiek prywatny;
}
Stwórzmy obiekt klasy ABC w następujący sposób:
ABC abc = nowe ABC ();
abc. wiek = 21; // błąd kompilatora
Zatem w powyższym kodzie dostęp do zmiennej prywatnej za pomocą obiektu klasy spowoduje błąd kompilatora.
Aby uzyskać dostęp do zmiennych prywatnych, odczytać ich wartości i ustawić w nich nowe wartości, potrzebujemy jakiegoś sposobu, aby to zrobić. W ten sposób Java zapewnia dostęp do zmiennych prywatnych przy użyciu metod pobierających i ustawiających.
Getter i Setters to metody publiczne, których możemy używać do tworzenia, modyfikowania, usuwania lub po prostu przeglądania wartości zmiennych prywatnych.
Poniższy program jest przykładem metod Getter i Setter.
//Account class - private data members bundled with getters and setters class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods for each data member public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } public class Main { public static void main(String() args) { //create instance of Account class Account myAcc=new Account(); //set values for data members through setter methods myAcc.setAcc_no(775492842L); myAcc.setName('SoftwareTestingHelp.com'); myAcc.setEmail('sth_account@sth.com'); myAcc.setAmount(25000f); //read data member values through getter methods System.out.println('Account No:' + myAcc.getAcc_no()+' '+'Account Name:' + myAcc.getName()+'
'+'Account holder email:' + myAcc.getEmail()+'
' + 'Amount in Account:' + myAcc.getAmount()); } }
Wynik:
Powyższy program ma klasę Konto i ma cztery zmienne prywatne związane z kontem. Ponieważ wszystkie składowe danych są prywatne, udostępniliśmy metody pobierające i ustawiające dla każdej z tych zmiennych.
W metodzie main odczytujemy i ustawiamy wartości tych prywatnych zmiennych za pomocą publicznych metod pobierających i ustawiających, do których dostęp uzyskuje się poprzez obiekt klasy Account.
j2ee wywiad pytania i odpowiedzi pdf
Ukrywanie danych w Javie
Często zamiennie używamy enkapsulacji i ukrywania danych. Ale obie nie są takie same. Enkapsulacja języka Java polega na grupowaniu powiązanych danych w jedną jednostkę, aby zapewnić lepsze zarządzanie danymi i ich bezpieczeństwo.
Z drugiej strony ukrycie danych ogranicza dostęp członka danych, ukrywając szczegóły implementacji. Chociaż hermetyzacja nie jest dokładnie ukrywaniem danych, zapewnia nam sposób ukrywania danych. Ukrywanie danych odbywa się za pomocą modyfikatorów dostępu.
Java udostępnia cztery modyfikatory dostępu.
- publiczny: Dostępne dla każdego.
- prywatny: Dostępne tylko w klasie.
- chroniony: Dostępne dla pakietu zawierającego i podklas.
- domyślna: Dostępne w pakiecie.
Hermetyzacja łączy dane w pojedynczą jednostkę, więc w pewien sposób ukrywa dane. Ponadto sprawia, że dane są prywatne, a tym samym niedostępne dla świata zewnętrznego. Aby uczynić dane prywatnymi, używamy modyfikatora dostępu jako prywatnego, który jest koncepcją ukrywania danych.
Jednocześnie użytkownikowi końcowemu dostarczane są tylko istotne szczegóły bez ujawniania szczegółów implementacji, co jest definicją abstrakcji. W ten sposób możemy postrzegać hermetyzację jako połączenie abstrakcji i ukrywania danych.
Dlaczego potrzebujemy kapsułkowania
Istnieje wiele powodów, dla których hermetyzacja jest niezbędna w Javie:
- Hermetyzacja pozwala nam modyfikować kod lub część kodu bez konieczności zmiany jakichkolwiek innych funkcji lub kodu.
- Hermetyzacja kontroluje sposób uzyskiwania dostępu do danych.
- Możemy modyfikować kod w oparciu o wymagania za pomocą enkapsulacji.
- Hermetyzacja sprawia, że nasze aplikacje są prostsze.
Często Zadawane Pytania
P # 1) Dlaczego enkapsulacja jest używana w Javie?
Odpowiedź: Hermetyzacja w Javie jest najczęściej przydatna do ukrywania danych. Innymi słowy, decydować o dostępie do danych, kto ma do nich dostęp, a kto nie.
P # 2) Co to jest hermetyzacja w OOP?
Odpowiedź: Hermetyzacja jest jednym z ważnych filarów języka programowania obiektowego i zajmuje się łączeniem danych i metod działających na tych danych w pojedynczą jednostkę. Na przykład, klasa w Javie to hermetyzowana struktura. Hermetyzacja zajmuje się również decyzjami dotyczącymi udostępniania danych.
P # 3) Jaka jest zaleta enkapsulacji w Javie?
Odpowiedź: Główną zaletą enkapsulacji w Javie jest ukrywanie danych. Stosując hermetyzację możemy pozwolić programiście decydować o dostępie do danych i metodach operujących na tych danych. Na przykład, jeśli chcemy, aby określone dane były niedostępne dla nikogo spoza klasy, wówczas ustawiamy te dane jako prywatne.
P # 4) Co to jest proces enkapsulacji?
Odpowiedź: Hermetyzacja to proces pobierania danych z jednego formatu lub protokołu (w kategoriach sieciowych) i tłumaczenia lub przeformatowywania ich na inny format lub protokół, tak aby dane były dostępne w aplikacjach lub sieci, a jednocześnie były chronione.
P # 5) Jaki jest ostatni krok w enkapsulacji danych?
Odpowiedź: Ostatnim krokiem w enkapsulacji jest zmiana informacji o użytkowniku na równoważne dane. Następnie dane te są zamieniane na segmenty, które są następnie przekształcane w pakiety danych. Pakiety danych są umieszczane w logicznej ramce, która może być przesyłana tam iz powrotem w środowisku oprogramowania
Wniosek
To kończy nasz samouczek dotyczący enkapsulacji w Javie. Hermetyzacja to technika łączenia zmiennych składowych i metod działających na tych elementach danych w jedną jednostkę. Klasa w Javie jest klasycznym przykładem hermetyzacji, ponieważ opakowuje dane i metody w jedną jednostkę.
Java osiąga implementację hermetyzacji, czyniąc wszystkie składowe danych prywatnymi, a następnie udostępniając metody pobierające i ustawiające, które są publiczne, abyśmy mogli odczytać wartości zmiennych prywatnych i ustawić nowe wartości dla tych zmiennych.
=> Odwiedź tutaj ekskluzywną serię samouczków szkoleniowych Java.
rekomendowane lektury
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- TreeMap w Javie - samouczek z przykładami TreeMap w języku Java
- Java Double - samouczek z przykładami programowania
- Samouczek Java Float z przykładami programowania
- Odwrócony ciąg Java: samouczek z przykładami programowania
- Java Enum: samouczek wyliczania w języku Java z przykładami
- Klasa Java Integer i Java BigInteger z przykładami
- Java String zawiera () Samouczek dotyczący metody z przykładami