logo

Toegang tot modifiers in Java

in Java helpen Access-modifiers om de reikwijdte van een klasse, constructor, variabele, methode of datalid te beperken. Het biedt de gebruiker beveiliging, toegankelijkheid, enz., afhankelijk van de toegangsmodificator die bij het element wordt gebruikt. Laten we in dit artikel meer te weten komen over Java Access Modifiers, hun typen en het gebruik van toegangsmodifiers.

Soorten toegangsmodificatoren in Java

Er zijn vier soorten toegangsmodifiers beschikbaar in Java:

  1. Standaard – Geen trefwoord vereist
  2. Privaat
  3. Beschermd
  4. Openbaar

1. Standaardtoegangsmodificator

Wanneer er geen toegangsmodificator is opgegeven voor een klasse, methode of gegevenslid, wordt er gezegd dat deze de standaard standaard toegangsmodifier. De gegevensleden, klassen of methoden die niet zijn gedeclareerd met behulp van toegangsmodificatoren, dat wil zeggen met standaard toegangsmodificatoren, zijn toegankelijk alleen binnen hetzelfde pakket .



In dit voorbeeld zullen we twee pakketten maken en zullen de klassen in de pakketten de standaard toegangsmodificatoren hebben en zullen we proberen toegang te krijgen tot een klasse uit het ene pakket vanuit een klasse uit het tweede pakket.

Programma 1:

Java
// Java program to illustrate default modifier  package p1;  // Class Geek is having Default access modifier  class Geek  {   void display()   {   System.out.println('Hello World!');   }  }>


Programma 2:

Linux hernoemt map
Java
// Java program to illustrate error while  // using class from different package with  // default modifier  package p2;  import p1.*;  // This class is having default access modifier  class GeekNew  {   public static void main(String args[])   {   // Accessing class Geek from package p1   Geek obj = new Geek();   obj.display();   }  }>

Uitgang:

Compile time error>

2. Modificatie voor privétoegang

De privétoegangsmodifier wordt gespecificeerd met behulp van het sleutelwoord privaat . De methoden of gegevensleden die als privé zijn gedeclareerd, zijn alleen toegankelijk binnen de klas waarin ze worden verklaard.

  • Elke andere klas van de hetzelfde pakket heeft geen toegang deze leden.
  • Klassen of interfaces op het hoogste niveau kunnen niet als privé worden aangemerkt omdat
    • privé betekent alleen zichtbaar binnen de omsluitende klasse.
    • beschermd betekent alleen zichtbaar binnen de omsluitende klasse en eventuele subklassen

Daarom zijn deze modifiers, in termen van toepassing op klassen, alleen van toepassing op geneste klassen en niet op klassen op het hoogste niveau

In dit voorbeeld maken we twee klassen A en B binnen hetzelfde pakket p1. We zullen een methode in klasse A als privé declareren en proberen toegang te krijgen tot deze methode vanuit klasse B en het resultaat te zien.

verwijder laatste commit git
Java
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A {  private void display()  {  System.out.println('techcodeview.com');  } } // Class B class B {  public static void main(String args[])  {  A obj = new A();  // Trying to access private method  // of another class  obj.display();  } }>

Uitgang:

error: display() has private access in A  obj.display();>

3. Beschermde toegangsmodificator

De beschermde toegangsmodificator wordt gespecificeerd met behulp van het sleutelwoord beschermd .

De methoden of gegevensleden die als beschermd zijn verklaard, zijn toegankelijk binnen hetzelfde pakket of subklassen in verschillende pakketten.

In dit voorbeeld maken we twee pakketten p1 en p2. Klasse A in p1 wordt openbaar gemaakt, zodat u er toegang toe kunt krijgen in p2. De methodeweergave in klasse A is beschermd en klasse B wordt geërfd van klasse A en deze beschermde methode wordt vervolgens benaderd door een object van klasse B te maken.

Programma 1:

rhel versus centos
Java
// Java Program to Illustrate // Protected Modifier package p1; // Class A public class A {  protected void display()  {  System.out.println('techcodeview.com');  } }>


Programma 2:

Java
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*;  // Class B is subclass of A class B extends A {  public static void main(String args[])  {  B obj = new B();  obj.display();  } }>

Uitgang:

techcodeview.com>

Modificatie voor openbare toegang

De modifier voor openbare toegang wordt gespecificeerd met behulp van het trefwoord openbaar .

  • De modifier voor openbare toegang heeft de breedste reikwijdte tussen alle andere toegangsmodificatoren.
  • Klassen, methoden of gegevensleden die als openbaar zijn gedeclareerd, zijn dat wel overal vandaan bereikbaar in het programma. Er is geen beperking op de reikwijdte van leden van openbare gegevens.

Programma 1:

Java
// Java program to illustrate  // public modifier  package p1;  public class A  {  public void display()   {   System.out.println('techcodeview.com');   }  }>

Programma 2:

Java
package p2; import p1.*; class B {  public static void main(String args[])  {  A obj = new A();  obj.display();  } }>

Uitgang:

techcodeview.com>

Belangrijke punten:

  • Als andere programmeurs jouw klasse gebruiken, probeer dan het meest restrictieve toegangsniveau te gebruiken dat zinvol is voor een bepaald lid. Gebruik privé, tenzij je een goede reden hebt om dat niet te doen.
  • Vermijd openbare velden, behalve constanten.

Algoritme om toegangsmodifier in Java te gebruiken

Hier is een basisalgoritme voor het gebruik van toegangsmodifiers in Java:

  • Definieer een klasse: Maak een klasse die het object vertegenwoordigt dat u wilt beheren.
  • Definieer instantievariabelen: Definieer binnen de klasse instantievariabelen die de gegevens vertegenwoordigen die u wilt beheren.
  • Geef een toegangsmodifier op: Geef voor elke instantievariabele een toegangsmodifier op die de zichtbaarheid van de variabele bepaalt. De drie belangrijkste toegangsmodificatoren in Java zijn privé, beschermd en openbaar.
  • Gebruik private voor variabelen die alleen toegankelijk mogen zijn binnen de klasse: Als u toegang tot een variabele van buiten de klasse wilt voorkomen, gebruikt u de private access modifier. Dit is de meest beperkende toegangsmodificator en biedt het hoogste niveau van inkapseling.
  • Gebruik protected voor variabelen die toegankelijk moeten zijn binnen de klasse en de subklassen ervan : Als u toegang tot een variabele vanuit de klasse en zijn subklassen wilt toestaan, gebruikt u de beschermde toegangsmodifier. Dit is minder beperkend dan privé en biedt een zekere mate van overerving.
  • Gebruik public voor variabelen die overal toegankelijk moeten zijn : Als u overal toegang tot een variabele wilt toestaan, gebruikt u de openbare toegangsmodifier. Dit is de minst beperkende toegangsmodificator en biedt de minste hoeveelheid inkapseling.
  • Gebruik accessor- en mutatormethoden om de toegang tot de variabelen te beheren: Om toegang te krijgen tot de variabelen en deze te wijzigen, gebruikt u de methoden accessor (getter) en mutator (setter), zelfs als de variabelen een modifier voor openbare toegang hebben. Dit biedt een abstractieniveau en maakt uw code beter onderhoudbaar en testbaar.

Veelgestelde vragen over toegangsmodificatoren

1. Wat zijn toegangsmodificatoren in Java?

Toegangsmodificatoren in Java zijn de trefwoorden die worden gebruikt om het gebruik van de methoden, constructors, velden en methoden in een klasse te regelen.

2. Wat is ongeldig op Java?

Void in Java wordt gebruikt om geen retourwaarde op te geven met de methode.

3. Wat zijn de 12 modifiers in Java?

12 Modifiers in Java zijn openbaar, privé, beschermd, standaard, definitief, gesynchroniseerd, abstract, native, strictfp, transient en vluchtig.