access modifiers java tutorial with examples
Denne videoopplæringen forklarer hva som er Access Modifiers i Java og hvordan du bruker Standard, Public, Protected og Private Access Modifiers ved hjelp av eksempler:
I Java har vi klasser og objekter. Disse klassene og gjenstandene er inneholdt i en pakke. Dessuten kan klasser ha nestede klasser, metoder, variabler osv. Siden Java er et objektorientert programmeringsspråk, må vi følge innkapslingen der vi skjuler de uønskede detaljene.
Java tilbyr enheter kalt “Access Modifiers or access specifiers” som hjelper oss med å begrense omfanget eller synligheten til en pakke, klasse, konstruktør, metoder, variabler eller andre datamedlemmer. Disse tilgangsmodifikatorene kalles også “Synlighetsspesifikatorer”.
Ved å bruke tilgangsspesifikatorene kan en bestemt klassemetode eller variabel begrenses til tilgang eller skjules for de andre klassene.
=> Sjekk ALLE Java-opplæringsprogrammer her.
intervjuspørsmål og svar på skrivebordstøtte for pdf-nivå på nivå 2
Hva du vil lære:
- Videoopplæring om tilgangsmodifikatorer i Java
- Få tilgang til modifikatorer i Java
- Typer tilgangsmodifikatorer i Java
- Konklusjon
Videoopplæring om tilgangsmodifikatorer i Java
Få tilgang til modifikatorer i Java
Tilgangsspesifikatorene bestemmer også hvilke datamedlemmer (metoder eller felt) i en klasse som andre datamedlemmer i klasser eller pakker kan få tilgang til. For å sikre innkapsling og gjenbrukbarhet er disse tilgangsspesifikatorene / integreringselementene en integrert del av objektorientert programmering.
Modifikatorer i Java er av to typer:
# 1) Få tilgang til modifikatorer
Tilgangsmodifikatorer i Java tillater oss å angi omfanget eller tilgjengeligheten eller synligheten til et datamedlem, det være seg et felt, konstruktør, klasse eller metode.
# 2) Modifikatorer som ikke er tilgjengelige
Java gir også ikke-tilgangsspesifikatorer som brukes sammen med klasser, variabler, metoder, konstruktører, etc. Ikke-tilgangsspesifikatorene / modifikatorene definerer oppførselen til enhetene til JVM.
Noen av ikke-tilgangsspesifikatorene / modifikatorene i Java er:
- statisk
- endelig
- abstrakt
- flyktig
- flyktige
- synkronisert
- innfødt
Vi har dekket statiske, synkroniserte og ustabile søkeord i våre tidligere opplæringsprogrammer. Vi vil dekke de andre modifikatorene som ikke er tilgjengelige i våre fremtidige opplæringsprogrammer, da de ligger utenfor omfanget av denne opplæringen.
Typer tilgangsmodifikatorer i Java
Java tilbyr fire typer tilgangsspesifikatorer som vi kan bruke med klasser og andre enheter.
Disse er:
# 1) Standard: Hver gang et spesifikt tilgangsnivå ikke er spesifisert, antas det å være 'standard'. Omfanget av standardnivået ligger innenfor pakken.
# 2) Offentlig: Dette er det vanligste tilgangsnivået, og når den offentlige tilgangsspesifikatoren brukes sammen med en enhet, er den aktuelle enheten tilgjengelig i eller fra klassen, i eller utenfor pakken, etc.
# 3) Beskyttet: Det beskyttede tilgangsnivået har et omfang som er innenfor pakken. En beskyttet enhet er også tilgjengelig utenfor pakken gjennom arvet klasse eller barneklasse.
# 4) Privat: Når en enhet er privat, kan denne enheten ikke nås utenfor klassen. En privat enhet kan bare være tilgjengelig fra klassen.
Vi kan oppsummere tilgangsmodifikatorene i følgende tabell.
Tilgangsspesifikator | Inside Class | Innvendig pakke | Utenfor pakkeunderklasse | Utenfor pakke |
---|---|---|---|---|
Privat | Ja | Ikke | Ikke | Ikke |
Misligholde | Ja | Ja | Ikke | Ikke |
Beskyttet | Ja | Ja | Ja | Ikke |
Offentlig | Ja | Ja | Ja | Ja |
Deretter vil vi diskutere hver av disse tilgangsspesifikatorene i detalj.
Standard tilgangsspesifikatorer
En standard tilgangsmodifikator i Java har ikke noe spesifikt nøkkelord. Når tilgangsmodifikatoren ikke er spesifisert, antas den å være standard. Enhetene som klasser, metoder og variabler kan ha standard tilgang.
En standardklasse er tilgjengelig inne i pakken, men den er ikke tilgjengelig utenfor pakken, dvs. alle klassene i pakken der standardklassen er definert, har tilgang til denne klassen.
Tilsvarende er en standardmetode eller variabel også tilgjengelig inne i pakken der de er definert og ikke utenfor pakken.
Programmet nedenfor viser Standard Access Modifier i Java.
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 } }
Produksjon:
I det ovennevnte programmet har vi en klasse og en metode inne i den uten tilgangsmodifikator. Derfor har både klasse- og metodevisning standard tilgang. Så ser vi at i metoden kan vi direkte lage et objekt av klassen og kalle metoden.
Public Access Modifier
En klasse eller en metode eller et datafelt spesifisert som ‘offentlig’ er tilgjengelig fra hvilken som helst klasse eller pakke i Java-programmet. Den offentlige enheten er tilgjengelig både i pakken og utenfor pakken. Generelt er public access modifier en modifier som ikke begrenser enheten i det hele tatt.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Produksjon:
Protected Access Specifier
Spesifikatoren for beskyttet tilgang gir tilgang til enheter gjennom underklasser av klassen der enheten er erklært. Det spiller ingen rolle om klassen er i samme pakke eller annen pakke, men så lenge klassen som prøver å få tilgang til en beskyttet enhet er en underklasse av denne klassen, er enheten tilgjengelig.
Merk at en klasse og et grensesnitt ikke kan beskyttes, dvs. vi kan ikke bruke beskyttede modifikatorer til klasser og grensesnitt.
Den beskyttede tilgangsmodifikatoren brukes vanligvis i foreldre-barn-forhold.
Programmet nedenfor viser bruken av Protected Access modifier i Java.
//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 } }
Produksjon:
Privat tilgangsmodifikator
Den 'private' tilgangsmodifisereren er den som har lavest tilgjengelighetsnivå. Metodene og feltene som er erklært private, er ikke tilgjengelige utenfor klassen. De er bare tilgjengelige innenfor klassen som har disse private enhetene som medlemmer.
Merk at de private enhetene ikke en gang er synlige for underklassene i klassen. En modifikator for privat tilgang sikrer innkapsling i Java.
Noen punkter som skal bemerkes angående privat tilgangsmodifikator.
- Privat tilgangsmodifikator kan ikke brukes til klasser og grensesnitt.
- Omfanget av private enheter (metoder og variabler) er begrenset til klassen de blir deklarert i.
- En klasse med en privat konstruktør kan ikke lage et objekt fra klassen fra noe annet sted som hovedmetoden. (Flere detaljer om private konstruktører er forklart i vår tidligere opplæring).
Java-programmet nedenfor bruker en privat tilgangsmodifikator.
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 } }
Produksjon:
Programmet ovenfor gir kompileringsfeil da vi prøver å få tilgang til private datamedlemmer ved hjelp av klasseobjektet.
Men det er en metode for å få tilgang til private medlemsvariabler. Denne metoden bruker getters og settere i Java. Så vi gir en offentlig get-metode i samme klasse der privat variabel blir erklært slik at getter kan lese verdien av den private variabelen.
hvordan du spiller .torrent-filer
På samme måte gir vi en offentlig settermetode som lar oss sette en verdi for den private variabelen.
Følgende Java-program demonstrerer bruken av getter- og settermetoder for private variabler i 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()); } }
Produksjon:
Ovennevnte program har en klasse med en privat strengvariabel. Vi tilbyr en offentlig getName-medlemsmetode som returnerer verdien av den private variabelen. Vi gir også en offentlig setName-metode i klassen som tar en streng som argument og tilordner den til den private variabelen.
Siden begge metodene er offentlige, kan vi enkelt få tilgang til dem ved hjelp av klassens objekt. På denne måten kan vi overvinne kompileringsfeilen som dukker opp hver gang vi prøver å få tilgang til de private datamedlemmene i klassen.
ofte stilte spørsmål
Q # 1) Hvor mange tilgangsmodifikatorer er det i Java?
Svar: Java tilbyr fire modifikatorer, dvs. standard, offentlig, beskyttet og privat.
Q # 2) Hva er Access Modifiers og Non-Access Modifiers i Java?
Svar: Tilgangsmodifikatorer definerer synligheten eller omfanget av en programenhet som en klasse eller en metode eller en variabel eller en konstruktør. Ikke-tilgangsmodifikatorer definerer oppførselen til en enhet. For eksempel, en synkronisert metode eller blokk indikerer at den kan operere i et flertrådingsmiljø, en sluttvariabel indikerer at den er en konstant.
Spørsmål 3) Hvorfor er tilgangsspesifikatorer viktige?
Svar: Modifikatorer spesifiserer hvilken klasse som har tilgang til hvilke andre klasser eller metoder eller variabler. Ved å bruke tilgangsspesifikatorer kan vi begrense tilgangen til forskjellige klasser, metoder, konstruktører og variabler, og også sikre innkapsling og gjenbrukbarhet av Java-enheter.
Q # 4) Hvilke modifikatorer brukes ikke til klassen?
Svar: Beskyttede og private modifikatorer brukes ikke til en klasse.
Sp # 5) Hva er ikke-tilgangsmodifikatorer?
Svar: Modifikatorer som definerer oppførselen til enheter som klasse, metode eller variabler som de er tilknyttet, er ikke-tilgangsmodifikatorer. Som navnet antyder, spesifiserer de ikke tilgangen. Java tilbyr forskjellige modifikatorer som ikke er tilgjengelige, som statisk, endelig, synkronisert, flyktig, abstrakt, etc.
Mer om synlighetsendringer
Java gir mange modifikatorer for å få tilgang til variabelen, metodene og konstruktørene.
Det er fire typer tilgangsvariabler i Java:
- Privat
- Offentlig
- Misligholde
- Beskyttet
# 1) Privat
Hvis en variabel blir erklært som privat, kan den nås i klassen. Denne variabelen vil ikke være tilgjengelig utenfor klassen. Så utenforstående medlemmer kan ikke få tilgang til de private medlemmene.
Merk: Klasser og grensesnitt kan ikke være private.
# 2) Offentlig
Metoder / variabler med offentlige modifikatorer er tilgjengelige for alle de andre klassene i prosjektet.
# 3) Beskyttet
Hvis en variabel blir deklarert som beskyttet, kan den nås i samme pakkeklasser og underklasse til andre pakker.
Merk: Beskyttet tilgangsmodifikator kan ikke brukes til klasse og grensesnitt.
# 4) Standard tilgangsmodifikator
Hvis en variabel / metode er definert uten noe nøkkelord for tilgangsmodifikator, vil det ha en standard modifikatortilgang.
hvordan du kjører .jar filer
Få tilgang til modifikatorer | Synlighet |
---|---|
Offentlig | Synlig for alle klasser. |
Beskyttet | Synlig for klasser med i pakken og underklassene til annen pakke. |
Ingen tilgangsmodifikator (standard) | Synlig for klassene med pakken |
privat | Synlig med i klassen. Det er ikke tilgjengelig utenfor klassen. |
Demoklasse:
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; } }
Få tilgang til klassens medlemmer i en annen klasse:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Produksjon:
Tilgang til de offentlige medlemmene:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Produksjon:
Bobby
Viktige poeng:
- Tilgangsspesifikatorer definerer synligheten til klassen.
- Hvis ingen nøkkelord er nevnt, er det standard tilgangsmodifikator.
- Fire modifikatorer i Java inkluderer offentlig, privat, beskyttet og standard.
- Private og beskyttede nøkkelord kan ikke brukes til klasser og grensesnitt.
Konklusjon
I denne opplæringen utforsket vi Access Modifiers i Java i detalj. Java tilbyr fire typer tilgangsmodifikatorer eller synlighetsspesifikatorer, dvs. standard, offentlig, privat og beskyttet. Standardmodifikatoren har ikke noe nøkkelord tilknyttet.
Når en klasse eller metode eller variabel ikke har en tilgangsspesifikator tilknyttet, antar vi at den har standard tilgang. Public access modifier gir tilgang til alt enten det er i eller utenfor klassen eller pakken. Det er ingen begrensning på tilgangen når det gjelder den offentlige modifikatoren.
Spesifikator for beskyttet synlighet gir kun tilgang til underklasser som arver klassen der beskyttede medlemmer blir erklært. Privat tilgangsmodifikator tillater at minst tilgjengelighet med private datamedlemmer bare er tilgjengelig i klassen.
Modifikatorer begrenser omfanget av datamedlemmer som klasser, konstruktører, metoder og variabler og definerer grensen for hvilke klasser eller pakker som kan få tilgang til dem. Tilgangsspesifikatorer oppfordrer innkapsling og gjenbrukbarhet i Java. Merk at klasser og grensesnitt ikke kan være beskyttet eller privat.
=> Besøk her for å lære Java fra bunnen av.
Anbefalt lesing
- Java Reflection Tutorial med eksempler
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Introduksjon til Java Programming Language - Video Tutorial
- Java SWING Tutorial: Container, Components and Event Handling
- Java String with String Buffer and String Builder Tutorial
- Java-distribusjon: Opprettelse og utføring av Java JAR-fil
- Java Virtual Machine: Hvordan JVM hjelper med å kjøre Java-applikasjoner
- Opplæring i Java Collections Framework (JCF)