Få adgang til modifikatorer i Java forklaret

Hvad er adgangsmodifikatorer?

Har du nogensinde ønsket at definere, hvordan folk vil få adgang til nogle af dine ejendomme? Du vil ikke have nogen, der bruger dit undertøj. Dog kan dine nære venner og familie bruge din sweater og måske din bil.

På samme måde som hvordan du indstiller et niveau for adgang til dine positioner, styrer Java også adgangen. Du vil definere adgangsniveauet for variabler, metoder og klasser afhængigt af hvilke andre klasser du vil have adgang til dem.

Java tilbyder 4 niveauer af adgangsmodifikatorer. Dette betyder, at du kan ændre adgangen til en variabel, metode eller en klasse på 4 måder. Disse 4 måder er private, offentlige, beskyttede og standard.

Disse adgangsmodifikatorer kan anvendes på felter, metoder og klasser (Klasser er et specielt tilfælde, vi vil se på dem i slutningen af ​​denne artice). Her er et hurtigt overblik1 over, hvad der Access Levelser for hver Access Modifier:

Adgangsmodifikatorer Tabelreference:

Adgang modifikatorer tabel

Privat adgangsmodifikator

Tillader kun at få adgang til en variabel eller metode i den klasse, hvor den blev oprettet. Ingen anden klasse ud over klassen, der oprettede variablen eller metoden, har adgang til den. Dette svarer meget til dine indre organer. De er kun tilgængelige for ejeren. For at gøre en variabel eller metode privat, skal du blot tilføje det private søgeord før variablen eller metodetypen. Lad os bruge privat i et kodeeksempel. Hvis en bank ønsker at give en rentesats på 10% på sine lån, vil den sørge for, at rentesatsen (lad os antage int int_rate;) forbliver privat, så ingen anden klasse ville forsøge at få adgang til den og ændre den. For eksempel;

private String name;

Ovenstående eksempel opretter en variabel kaldet navn og sikrer, at den kun er tilgængelig inden for den klasse, hvorfra den blev oprettet.

Et andet eksempel på en metode er

private void setAge(){ System.out.println("Set Age"); }

Ovenstående eksempel sikrer, at metoden setAge kun er tilgængelig inden for den klasse, hvorfra den blev oprettet, og ingen andre steder.

Modifikator for offentlig adgang

Modifikatoren for offentlig adgang er det modsatte af den private adgangsmodifikator. En klasse, metode eller variabel kan erklæres offentlig, og det betyder, at den er tilgængelig fra enhver klasse. Modifikator for offentlig adgang kan sammenlignes med en offentlig skole, hvor alle kan søge optagelse og blive optaget.

En offentlig klasse, metode eller variabel kan tilgås fra enhver anden klasse til enhver tid.

For eksempel for at erklære en klasse som offentlig er alt hvad du behøver:

public class Animal{ }

Som sådan kan Animal Class få adgang til enhver anden klasse.

public int age; public int getAge(){ }

Ovenstående er måder at specificere en variabel og en metode som offentlig.

Standardadgangsmodifikatoren

Standardadgangsmodifikatoren adskiller sig fra alle de andre adgangsmodifikatorer, da den ikke har noget nøgleord. For at bruge standardadgangsmodifikatoren bruger du simpelthen ingen af ​​de andre adgangsmodifikatorer, og det betyder simpelthen at du bruger en standardadgangsmodifikator.

Hvis du f.eks. Vil bruge standardadgangsmodifikatoren til en klasse, bruger du

class Bird{ }

Dette betyder grundlæggende, at du bruger standardadgangsmodifikatoren. Standardadgangsmodifikatoren tillader, at en variabel, metode eller klasse er tilgængelig for andre klasser inden for samme pakke. En pakke er en samling af relaterede klasser i en filmappe. For mere information om pakker, se afsnittet om pakker.

Enhver variabel, metode eller klasse, der erklæres for at bruge standardadgangsmodifikatoren, kan ikke tilgås af nogen anden klasse uden for pakken, hvorfra den blev deklareret.

int age; void setNewAge(){ }

Ovenstående er nogle måder at bruge standardadgangsmodifikatoren til en variabel eller metode. Glem ikke, standardadgangsmodifikatoren har ikke et nøgleord. Fraværet af de 3 andre adgangsmodifikatorer betyder, at du bruger standardadgangsmodifikatoren.

Beskyttet adgangsmodifikator

Den beskyttede adgangsmodifikator er tæt knyttet til standardadgangsmodifikatoren. Den beskyttede adgangsmodifikator har egenskaberne for standardadgangsmodifikatoren, men med en lille forbedring.

En variabel og metode er de eneste, der bruger den beskyttede adgangsmodifikator. Den lille forbedring er, at en klasse uden for klassepakken, hvorfra variablen eller metoden blev erklæret, kan få adgang til den nævnte variabel eller metode. Dette er KUN muligt, hvis det arver fra klassen.

Klassen fra en anden pakke, der kan se beskyttede variabler eller metoder, skal have udvidet den klasse, der oprettede variablerne eller metoderne.

Bemærk uden fordelen ved arv, en standardadgangsmodifikator har nøjagtig den samme adgang som en beskyttet adgangsmodifikator.

Eksempler på brug af den beskyttede adgangsmodifikator er vist nedenfor:

protected int age; protected String getName(){ return "My Name is You"; }

Adgang modifikatorer på klasser

Som standard kan klasser kun have 2 modifikatorer:

  • offentlig
  • ingen modifikator (standardmodifikator)

Så det betyder, at klasser aldrig kan indstilles til privateeller protected?

Dette er logisk, hvorfor vil du oprette en privat klasse? Ingen anden klasse ville være i stand til at bruge den. Men nogle gange kan du integrere en klasse i en anden klasse. Disse specialklasser inner classeskan indstilles til privat eller beskyttet, så kun dens omgivende klasse har adgang til det:

public class Car { private String brand; private Engine engine; // ... private class Engine { // ... } }

I ovenstående eksempel er det kun Carklassen, der kan bruge Engineklassen. Dette kan være nyttigt i nogle tilfælde.

Andre klasser kan aldrig indstilles til protectedeller private, fordi det ikke giver mening. Den protectedadgang modifier bruges til at gøre tingene package-private, men med mulighed for at være tilgængelig for underklasser. Der er ikke noget begreb som 'underpakker' eller 'pakke-arv' i java.