Modyfikatory dostępu w Javie
Ta sekcja zawiera głęboki wgląd w modyfikatory dostępu w Javie. Otrzymasz szczegółowy opis każdego modyfikatora wykazanego przez przykład, który ilustruje funkcjonalność każdego modyfikatora dostępu.
Modyfikator dostępu publicznego
Jak sugeruje nazwa modyfikatora, jest to najmniej bezpieczna, a klasy, metody, instancje zadeklarowane przy użyciu publicznych słów kluczowych mają następujące opcje dostępności:
- Można do nich uzyskać dostęp w pakiecie/klasie, poza pakietem/klasą
Przykład
pakiet Newpack;Kod napisany powyżej ma następujący opis:
- Klasa publiczna i metoda publiczna jest deklarowana, że zawiera oświadczenie linii drukowanej.
Obraz kodu jest tutaj podany:
Metoda klasowa wymieniona pokazywać W powyższym kodzie jest wywoływane w drugiej klasie, jak pokazano poniżej:
Mod pakietu;Kod opisano poniżej
- Nazwa pakietu Newpack klasy jest importowany
- obiekt klasy AccessMod (Klasa, która znajduje się w opakowaniu wymienionym Newpack) jest tworzone
Obraz kodu i wyjścia pokazano poniżej:
Z powyższego wyjścia stwierdza się, że publiczne modyfikatory dostępu mogą uzyskać dostęp do obiektów klasy, która jest również poza tą klasą i pakietem.
Prywatny modyfikator dostępu
W przeciwieństwie do klasy publicznej, do prywatnych metod/warstw można uzyskać tylko w klasie. Nie można uzyskać dostępu do prywatnych metod/zmiennych:
- poza paczką
- w pakiecie (ale poza klasą)
Przykład 1: Poza pakietem
pakiet Newpack;Opis kodu znajduje się poniżej:
- Metoda show jest zadeklarowana za pomocą prywatnego modyfikatora
Teraz następujący kod próbuje wykonać metodę show z AccessMod klasa.
Mod pakietu;Nowa klasa o nazwie ACSESM jest tworzona w pakiecie MOD. Newpack Pakiet jest importowany do tego pakietu, ponieważ musimy utworzyć obiekt nazywanej klasy AccessMod (To mieszka Newpack's klasa).
Z wyjścia jasno wynika, że AccessMod i powiązanych obiektów nie można uzyskać dostępu poza pakiet.
Przykład: poza klasą (ten sam pakiet)
Pakiet LH;Kod jest opisany jako,
- klasa o nazwie sztywny jest stworzony w LH pakiet. sztywny Klasa zawiera prywatną metodę nazwaną Pvt.
Teraz, aby zweryfikować prywatny modyfikator dostępu, używany jest kod podany poniżej.
Pakiet LH;Pakiet obu klas jest taki sam, ale klasa o nazwie Second próbuje utworzyć obiekt Pvt (). Pvt () jest metodą w sztywny klasa.
Zgodnie z wyjściem jest obserwowany, pvt () Metody nie można uzyskać ze względu na swój prywatny modyfikator dostępu.
Domyślny modyfikator dostępu
Członkowie danych zadeklarowane za pomocą domyślnych słów kluczowych są dostępne tylko w tym samym pakiecie. Spada między prywatnymi i chronionymi modyfikatorami dostępu, a zatem jest bezpieczniejszy niż chroniony i najmniej bezpieczny niż prywatny.
Przykład 1: poza pakietem
pakiet Newpack;Opis kodu jest następujący,
- Utworzona jest klasa domyślna nazwana Def i zawiera główną metodę
- Instrukcja wiersza drukowania jest wykonywana w głównej metodzie
Aby przetestować dostępność klasy domyślnej, używane są następujące wiersze kodu.
Pakiet LH;Kod jest opisany jako,
- zaimportował pakiet o nazwie Newpack
- stworzył nową klasę zgrabny
- utworzył obiekt klasy Def W głównej metodzie zgrabny klasa
Dane wyjściowe pokazuje, że dostępność Def Klasy należy zmienić na społeczeństwo, aby uzyskać dostęp do klasy innych pakietów.
Przykład 2: poza klasą (w tym samym pakiecie)
Poniższy kod tworzy domyślną metodę dla klasy o nazwie sztywny.
Pakiet LH;Domyślna metoda wymieniona pub() jest zdefiniowane w klasie sztywny.
Aby zweryfikować jego dostępność, rzućmy okiem na następujący kod.
Pakiet LH;Obiekt pub() Metoda jest tworzona w innej klasie (która znajduje się w tym samym pakiecie).
Z wyjścia obserwuje się, że obiekt pub() Metoda jest wykonywana pomyślnie, a zatem stwierdza się, że metody zadeklarowane przy użyciu domyślnych modyfikatorów dostępu mogą być używane w tym samym pakiecie, ale w różnych klasach.
Modyfikator dostępu chroniony
Metody lub elementy danych, które są zadeklarowane za pomocą chronionych słów kluczowych, są dostępne w klasie lub innych klasach w tym samym pakiecie. Nie można uzyskać do niego dostępu poza pakietem, ale podklasa innych pakietów może uzyskać dostęp do chronionych metod.
Przykład: Korzystanie z podklasy tego samego pakietu
pakiet Newpack;Metoda show () jest zadeklarowana z chronionymi uprawnieniami:
Metoda jest dostępna w AccessM (Podklasa tego samego pakietu, w której AccessMod kłamstwa) i proces jest przeprowadzany za pomocą następującego kodu:
pakiet Newpack;Obraz wyjściowy kodu jest podany poniżej:
Teraz opracujmy różnicę między domyślnymi a chronionymi modyfikatorami dostępu za pomocą następującego przykładu. Domyślne modyfikatory dostępu nie mogą uzyskać dostępu do podklas (poza pakietem), jednak uzyskujemy dostęp do metody chronionej za pomocą podklasy.
Przykład 2: Za pomocą podklasy innych pakietów
Pakiet LH;W powyższym kodzie metoda chroniona jest zadeklarowana w klasie, która zawiera prostą instrukcję linii drukowania.
Kod napisany poniżej utworzy i uzyskał dostęp do obiektu chronionej metody pokazanej na powyższym obrazie.
pakiet Newpack;Zauważyłbyś to,
- paczka LH jest importowany do pakietu Newpack
- podklasa (of Prot klasa) protmod jest zadeklarowane
- obiekt klasy Protmod o nazwie obj służy do uzyskania treści wyświetlacz() metoda Prot klasa).
Dane wyjściowe pokazuje, że wyświetlacz() Metoda zawarta wewnątrz Prot klasa jest używana w podklasie Prot klasa.
Wniosek
Modyfikatory dostępu Java pozwalają określić poziom dostępności metod, klas, zmiennych i konstruktorów. Ten artykuł zawiera funkcjonalność modyfikatorów dostępu, które mogą być używane w Javie. Modyfikatory dostępu, takie jak prywatne, publiczne, chronione i domyślne, są wykonywane przy użyciu różnych przykładów. Na koniec stwierdza się, że prywatne modyfikatory ustawiają najbezpieczniejszą platformę, podczas gdy publiczne modyfikatory są uważane za najmniej bezpieczne.