Modyfikatory dostępu w Javie

Modyfikatory dostępu w Javie
Modyfikator dostępu to terminologia obiektowa używana do zdefiniowania dostępności klas, metod i konstruktorów. Będąc programowaniem obiektowym, Java obsługuje cztery różne poziomy modyfikatorów dostępu, a każdy modyfikator dostępu działa na innym poziomie. Modyfikatory dostępu mogą być jednym z poniższych, domyślnych, publicznych, prywatnych i chronionych. Wybór modyfikatora dostępu zależy od problemu, który zamierzasz rozwiązać. Ten opisowy przewodnik pokazuje funkcjonalność modyfikatorów dostępu w Javie.

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;
Klasa publiczna AccessMod

Public void Show ()

System.na zewnątrz.println („Witamy w Linuxhint!");

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;
Zaimportuj Newpack.*;
klasa AccessM
public static void main (string args [])

AccessMod obj = new AccessMod ();
obj.pokazywać();

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;
Klasa AccessMod

Private Void Show ()

System.na zewnątrz.println („Linuxhint!");

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;
Zaimportuj Newpack.*;
klasa AccessM
public static void main (string argos [])

AccessMod obj = new AccessMod ();
obj.pokazywać();

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;
klasa Prim
private void pvt ()
System.na zewnątrz.println („Linuxhint”);

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;
klasa druga
public static void main (string [] main)
prim obj = new prim ();
obj.pvt ();

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;
klasa def
static void main (string [] args)
System.na zewnątrz.println („klasa domyślna”);

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;
Zaimportuj Newpack.*;
klasa deft
static void main (string [] args)
Def test = new def ();
test.główny();

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;
klasa Prim
void pub ()
System.na zewnątrz.println („domyślny modyfikator dostępu”);

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;
klasa druga
public static void main (string [] main)
prim obj = new prim ();
obj.pub();

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;
Klasa AccessMod

chroniony void show ()

System.na zewnątrz.println („Linuxhint!");

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;
klasa AccessM rozszerza AccessMod
public static void main (string args [])

AccessMod obj = new AccessMod ();
obj.pokazywać();

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;
Klasa publiczna Prot
Protected void display ()
System.na zewnątrz.println („Witamy w Linuxhint!");

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;
Import LH.*;
klasa protmod rozszerza Prot
public static void main (string args [])

protmod obj = nowy protmod ();
obj.wyświetlacz();

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.