access modifiers java tutorial with examples
Ten samouczek wideo wyjaśnia, czym są modyfikatory dostępu w Javie i jak używać domyślnych, publicznych, chronionych i prywatnych modyfikatorów dostępu na przykładach:
W Javie mamy klasy i obiekty. Te klasy i obiekty są zawarte w pakiecie. Poza tym klasy mogą mieć zagnieżdżone klasy, metody, zmienne itp. Ponieważ Java jest zorientowanym obiektowo językiem programowania, musimy przestrzegać enkapsulacji, w której ukrywamy niechciane szczegóły.
Java udostępnia jednostki zwane „modyfikatorami dostępu lub specyfikatorami dostępu”, które pomagają nam ograniczyć zakres lub widoczność pakietu, klasy, konstruktora, metod, zmiennych lub innych członków danych. Te modyfikatory dostępu są również nazywane „Specyfikatory widoczności”.
Korzystając ze specyfikatorów dostępu, można ograniczyć dostęp do określonej metody lub zmiennej klasy lub ją ukryć przed innymi klasami.
=> Sprawdź WSZYSTKIE samouczki Java tutaj.
najlepszy środek czyszczący do komputera dla systemu Windows 10
Czego się nauczysz:
- Samouczek wideo dotyczący modyfikatorów dostępu w języku Java
- Modyfikatory dostępu w Javie
- Rodzaje modyfikatorów dostępu w Javie
- Wniosek
Samouczek wideo dotyczący modyfikatorów dostępu w języku Java
Modyfikatory dostępu w Javie
Specyfikatory dostępu określają również, do których elementów członkowskich danych (metod lub pól) klasy mogą mieć dostęp inni członkowie danych klas lub pakietów itp. Aby zapewnić hermetyzację i możliwość ponownego wykorzystania, te specyfikatory / modyfikatory dostępu są integralną częścią programowania obiektowego.
Modyfikatory w Javie są dwojakiego rodzaju:
# 1) Modyfikatory dostępu
Modyfikatory dostępu w Javie pozwalają nam ustawić zakres, dostępność lub widoczność elementu członkowskiego danych, niezależnie od tego, czy jest to pole, konstruktor, klasa czy metoda.
# 2) Modyfikatory braku dostępu
Java udostępnia również specyfikatory braku dostępu, które są używane z klasami, zmiennymi, metodami, konstruktorami itp. Specyfikatory / modyfikatory braku dostępu definiują zachowanie jednostek w JVM.
Niektóre z specyfikatorów / modyfikatorów braku dostępu w Javie to:
- statyczny
- finał
- abstrakcyjny
- przejściowy
- lotny
- zsynchronizowane
- ojczysty
W naszych wcześniejszych samouczkach omówiliśmy statyczne, zsynchronizowane i zmienne słowa kluczowe. Omówimy inne modyfikatory bez dostępu w naszych przyszłych samouczkach, ponieważ wykraczają one poza zakres tego samouczka.
Rodzaje modyfikatorów dostępu w Javie
Java udostępnia cztery typy specyfikatorów dostępu, których możemy używać z klasami i innymi jednostkami.
To są:
# 1) Domyślnie: Jeśli nie określono konkretnego poziomu dostępu, przyjmuje się, że jest on „domyślny”. Zakres poziomu domyślnego znajduje się w pakiecie.
# 2) Publiczne: Jest to najpowszechniejszy poziom dostępu i ilekroć specyfikator dostępu publicznego jest używany z jednostką, ta konkretna jednostka jest dostępna w całej klasie lub poza nią, w pakiecie lub poza nim itp.
# 3) Chroniony: Poziom dostępu chronionego ma zakres zawarty w pakiecie. Jednostka chroniona jest również dostępna poza pakietem za pośrednictwem klasy dziedziczonej lub klasy podrzędnej.
# 4) Prywatne: Gdy jednostka jest prywatna, nie można uzyskać do niej dostępu poza klasą. Podmiot prywatny może być dostępny tylko z poziomu klasy.
Możemy podsumować modyfikatory dostępu w poniższej tabeli.
Specyfikator dostępu | Wewnątrz klasy | Pakiet wewnętrzny | Podklasa pakietu zewnętrznego | Pakiet zewnętrzny |
---|---|---|---|---|
Prywatny | tak | Nie rób | Nie rób | Nie rób |
Domyślna | tak | tak | Nie rób | Nie rób |
Chroniony | tak | tak | tak | Nie rób |
Publiczny | tak | tak | tak | tak |
Następnie szczegółowo omówimy każdy z tych specyfikatorów dostępu.
Domyślne specyfikatory dostępu
Domyślny modyfikator dostępu w Javie nie ma określonego słowa kluczowego. Jeśli modyfikator dostępu nie jest określony, przyjmuje się, że jest to wartość domyślna. Jednostki, takie jak klasy, metody i zmienne, mogą mieć domyślny dostęp.
Klasa domyślna jest dostępna wewnątrz pakietu, ale nie jest dostępna z zewnątrz pakietu, tj. Wszystkie klasy wewnątrz pakietu, w których zdefiniowano klasę domyślną, mają dostęp do tej klasy.
Podobnie domyślna metoda lub zmienna jest również dostępna wewnątrz pakietu, w którym są zdefiniowane, a nie poza pakietem.
Poniższy program demonstruje domyślny modyfikator dostępu w Javie.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Wynik:
W powyższym programie mamy w sobie klasę i metodę bez żadnego modyfikatora dostępu. W związku z tym zarówno wyświetlanie klasy, jak i metody ma domyślny dostęp. Następnie widzimy, że w metodzie możemy bezpośrednio stworzyć obiekt klasy i wywołać metodę.
Modyfikator dostępu publicznego
Klasa, metoda lub pole danych określone jako „publiczne” są dostępne z dowolnej klasy lub pakietu w programie Java. Podmiot publiczny jest dostępny zarówno w ramach pakietu, jak i poza nim. Ogólnie rzecz biorąc, modyfikator dostępu publicznego to modyfikator, który w ogóle nie ogranicza jednostki.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Wynik:
Specyfikator dostępu chronionego
Specyfikator dostępu chronionego umożliwia dostęp do jednostek za pośrednictwem podklas klasy, w której jednostka jest zadeklarowana. Nie ma znaczenia, czy klasa znajduje się w tym samym pakiecie, czy w innym pakiecie, ale dopóki klasa, która próbuje uzyskać dostęp do chronionej jednostki, jest podklasą tej klasy, jednostka jest dostępna.
Zwróć uwagę, że klasa i interfejs nie mogą być chronione, tj. Nie możemy zastosować chronionych modyfikatorów do klas i interfejsów.
Modyfikator dostępu chronionego jest zwykle używany w relacjach nadrzędny-podrzędny.
Poniższy program demonstruje użycie modyfikatora dostępu chronionego w Javie.
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Wynik:
Modyfikator dostępu prywatnego
Modyfikator dostępu „prywatny” to taki, który ma najniższy poziom dostępności. Metody i pola zadeklarowane jako prywatne nie są dostępne poza klasą. Są dostępne tylko w ramach klasy, której członkami są te podmioty prywatne.
Zauważ, że encje prywatne nie są nawet widoczne dla podklas klasy. Prywatny modyfikator dostępu zapewnia hermetyzację w Javie.
Kilka uwag dotyczących modyfikatora dostępu prywatnego.
- Modyfikatora dostępu prywatnego nie można używać do klas i interfejsów.
- Zakres jednostek prywatnych (metod i zmiennych) jest ograniczony do klasy, w której są zadeklarowane.
- Klasa z prywatnym konstruktorem nie może utworzyć obiektu klasy z żadnego innego miejsca, takiego jak metoda main. (Więcej szczegółów na temat prywatnych konstruktorów zostało wyjaśnionych w naszym wcześniejszym samouczku).
Poniższy program Java używa modyfikatora dostępu prywatnego.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Wynik:
Powyższy program wyświetla błąd kompilacji, ponieważ próbujemy uzyskać dostęp do prywatnych członków danych za pomocą obiektu klasy.
Istnieje jednak metoda uzyskiwania dostępu do prywatnych zmiennych składowych. Ta metoda wykorzystuje metody pobierające i ustawiające w Javie. Dlatego udostępniamy publiczną metodę get w tej samej klasie, w której zadeklarowano zmienną prywatną, aby funkcja pobierająca mogła odczytać wartość zmiennej prywatnej.
Podobnie, udostępniamy publiczną metodę ustawiającą, która pozwala nam ustawić wartość zmiennej prywatnej.
Poniższy program w języku Java demonstruje użycie metod pobierających i ustawiających dla zmiennych prywatnych w języku Java.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Wynik:
najlepsze oprogramowanie do zgrywania płyt DVD dla komputerów Mac
Powyższy program ma klasę z prywatną zmienną łańcuchową. Udostępniamy publiczną metodę składową getName, która zwraca wartość zmiennej prywatnej. Udostępniamy również publiczną metodę setName w klasie, która przyjmuje String jako argument i przypisuje go do zmiennej prywatnej.
Ponieważ obie metody są publiczne, możemy łatwo uzyskać do nich dostęp za pomocą obiektu klasy. W ten sposób możemy pokonać błąd kompilacji, który pojawia się za każdym razem, gdy próbujemy uzyskać dostęp do prywatnych danych członków klasy.
Często Zadawane Pytania
Pytanie 1) Ile modyfikatorów dostępu jest dostępnych w Javie?
Odpowiedź: Java udostępnia cztery modyfikatory, tj. Domyślny, publiczny, chroniony i prywatny.
P # 2) Co to są modyfikatory dostępu i modyfikatory braku dostępu w Javie?
Odpowiedź: Modyfikatory dostępu definiują widoczność lub zakres jednostki programu, takiej jak klasa lub metoda, zmienna lub konstruktor. Modyfikatory braku dostępu definiują zachowanie jednostki. Na przykład, zsynchronizowana metoda lub blok wskazuje, że może działać w środowisku wielowątkowym, a zmienna końcowa wskazuje, że jest to stała.
P # 3) Dlaczego specyfikatory dostępu są ważne?
Odpowiedź: Modyfikatory określają, która klasa ma dostęp do innych klas, metod lub zmiennych. Korzystając ze specyfikatorów dostępu, możemy ograniczyć dostęp różnych klas, metod, konstruktorów i zmiennych, a także zapewnić hermetyzację i możliwość ponownego wykorzystania jednostek Java.
P # 4) Które modyfikatory nie są używane w klasie?
Odpowiedź: Modyfikatory chronione i prywatne nie są używane dla klasy.
P # 5) Co to są modyfikatory braku dostępu?
Odpowiedź: Modyfikatory, które definiują zachowanie jednostek, takich jak klasa, metoda lub zmienne, z którymi są skojarzone, są modyfikatorami bez dostępu. Jak sama nazwa wskazuje, nie określają dostępu. Java udostępnia różne modyfikatory niedostępne, takie jak statyczne, końcowe, zsynchronizowane, nietrwałe, abstrakcyjne itp.
Więcej o modyfikatorach widoczności
Java udostępnia wiele modyfikatorów umożliwiających dostęp do zmiennych, metod i konstruktorów.
W Javie istnieją 4 typy zmiennych dostępu:
- Prywatny
- Publiczny
- Domyślna
- Chroniony
# 1) Prywatne
Jeśli zmienna jest zadeklarowana jako prywatna, można uzyskać do niej dostęp w ramach klasy. Ta zmienna nie będzie dostępna poza zajęciami. Zatem członkowie zewnętrzni nie mogą uzyskać dostępu do członków prywatnych.
Uwaga: Klasy i interfejsy nie mogą być prywatne.
# 2) Publiczne
Metody / zmienne z publicznymi modyfikatorami są dostępne dla wszystkich innych klas w projekcie.
# 3) Chroniony
Jeśli zmienna jest zadeklarowana jako chroniona, to można uzyskać do niej dostęp w ramach tych samych klas pakietu i podklasy dowolnego innego pakietu.
Uwaga: Modyfikatora dostępu chronionego nie można używać dla klas i interfejsów.
# 4) Domyślny modyfikator dostępu
Jeśli zmienna / metoda jest zdefiniowana bez słowa kluczowego modyfikującego dostęp, będzie miała domyślny dostęp modyfikatora.
Modyfikatory dostępu | Widoczność |
---|---|
Publiczny | Widoczne dla wszystkich klas. |
Chroniony | Widoczne dla klas znajdujących się w pakiecie i podklas innych pakietów. |
Brak modyfikatora dostępu (domyślne) | Widoczny dla klas z pakietem |
prywatny | Widoczny w klasie. Nie jest dostępny poza zajęciami. |
Klasa demonstracyjna:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Dostęp do członków klasy w innej klasie:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
najlepsze strony pobierania mp3 dla Androida
Wynik:
Dostęp do członków publicznych:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Wynik:
Konstabl
Ważne punkty:
- Specyfikatory dostępu definiują widoczność klasy.
- Jeśli nie podano słowa kluczowego, jest to domyślny modyfikator dostępu.
- Cztery modyfikatory w Javie to publiczny, prywatny, chroniony i domyślny.
- Prywatne i chronione słowa kluczowe nie mogą być używane dla klas i interfejsów.
Wniosek
W tym samouczku szczegółowo omówiliśmy modyfikatory dostępu w języku Java. Java udostępnia cztery typy modyfikatorów dostępu lub specyfikatorów widoczności, tj. Domyślny, publiczny, prywatny i chroniony. Z domyślnym modyfikatorem nie jest skojarzone żadne słowo kluczowe.
Kiedy klasa, metoda lub zmienna nie ma skojarzonego z nią specyfikatora dostępu, zakładamy, że ma dostęp domyślny. Modyfikator dostępu publicznego umożliwia dostęp do wszystkiego, czy to wewnątrz, czy poza klasą lub pakietem. Nie ma ograniczenia dostępu w przypadku modyfikatora publicznego.
Specyfikator widoczności chronionej umożliwia dostęp tylko do podklas dziedziczących klasę, w której zadeklarowano chronione elementy członkowskie. Modyfikator dostępu prywatnego umożliwia najmniejszą dostępność z elementami składowymi danych prywatnych tylko w ramach klasy.
Modyfikatory ograniczają zakres elementów składowych danych, takich jak klasy, konstruktory, metody i zmienne, oraz definiują ograniczenia dotyczące dostępu do nich klas lub pakietów. Specyfikatory dostępu zachęcają do hermetyzacji i ponownego użycia w języku Java. Należy pamiętać, że klasy i interfejs nie mogą być chronione ani prywatne.
=> Odwiedź tutaj, aby nauczyć się języka Java od podstaw.
rekomendowane lektury
- Samouczek dotyczący refleksji w języku Java z przykładami
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- Wprowadzenie do języka programowania Java - samouczek wideo
- Samouczek Java SWING: kontener, komponenty i obsługa zdarzeń
- Ciąg Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Wdrażanie Java: tworzenie i wykonywanie pliku Java JAR
- Wirtualna maszyna Java: jak JVM pomaga w uruchamianiu aplikacji Java
- Samouczek Java Collections Framework (JCF)