access modifiers java tutorial with examples
In deze videozelfstudie wordt uitgelegd wat toegangsmodificatoren in Java zijn en hoe u standaard-, openbare, beschermde en privétoegangsmodificatoren kunt gebruiken met behulp van voorbeelden:
In Java hebben we klassen en objecten. Deze klassen en objecten zitten in een pakket. Bovendien kunnen klassen geneste klassen, methoden, variabelen enz. Hebben. Omdat Java een objectgeoriënteerde programmeertaal is, moeten we de inkapseling volgen waarin we de ongewenste details verbergen.
Java biedt entiteiten die 'Toegangsmodificatoren of toegangsspecificaties' worden genoemd en die ons helpen de reikwijdte of zichtbaarheid van een pakket, klasse, constructor, methoden, variabelen of andere gegevensleden te beperken. Deze toegangsmodificatoren worden ook wel 'Zichtbaarheidsspecificaties'.
Door de toegangsspecificaties te gebruiken, kan een bepaalde klassemethode of variabele worden beperkt tot toegang of verborgen voor de andere klassen.
Bekijk hier ALLE Java-tutorials.
ms sql server interviewvragen en antwoorden voor ervaren
Wat je leert:
- Video-zelfstudie over toegangsmodificatoren in Java
- Toegang tot modificatoren in Java
- Typen toegangsmodificatoren in Java
- Gevolgtrekking
Video-zelfstudie over toegangsmodificatoren in Java
Toegang tot modificatoren in Java
De toegangsspecificaties bepalen ook welke gegevensleden (methoden of velden) van een klasse toegankelijk zijn voor andere gegevensleden van klassen of pakketten, enz. Om inkapseling en herbruikbaarheid te garanderen, zijn deze toegangsspecificaties / modificatoren een integraal onderdeel van objectgeoriënteerd programmeren.
Er zijn twee soorten modificatoren in Java:
# 1) Toegang tot modificatoren
Toegangsmodificatoren in Java stellen ons in staat om het bereik of de toegankelijkheid of zichtbaarheid van een gegevenslid in te stellen, of het nu een veld, constructor, klasse of methode is.
# 2) Niet-toegangsmodificatoren
Java biedt ook niet-toegangsspecificaties die worden gebruikt met klassen, variabelen, methoden, constructors, enz. De niet-toegangsspecificaties / modificatoren bepalen het gedrag van de entiteiten voor de JVM.
Enkele van de niet-toegangsspecificaties / modificatoren in Java zijn:
- statisch
- laatste
- abstract
- voorbijgaand
- vluchtig
- gesynchroniseerd
- native
We hebben statische, gesynchroniseerde en vluchtige trefwoorden behandeld in onze eerdere tutorials. We zullen de andere niet-toegangsmodificatoren in onze toekomstige tutorials behandelen, aangezien deze buiten het bestek van deze tutorial vallen.
Typen toegangsmodificatoren in Java
Java biedt vier soorten toegangsspecificaties die we kunnen gebruiken met klassen en andere entiteiten.
Dit zijn:
# 1) Standaard: Als er geen specifiek toegangsniveau is gespecificeerd, wordt aangenomen dat dit ‘standaard’ is. Het bereik van het standaardniveau is binnen het pakket.
# 2) Openbaar: Dit is het meest gebruikelijke toegangsniveau en wanneer de openbare toegangsspecificatie wordt gebruikt met een entiteit, is die specifieke entiteit overal toegankelijk van binnen of buiten de klas, binnen of buiten het pakket, enz.
# 3) Beschermd: Het beschermde toegangsniveau heeft een bereik dat binnen het pakket valt. Een beschermde entiteit is ook buiten het pakket toegankelijk via een erfelijke klasse of een onderliggende klasse.
# 4) Privé: Als een entiteit privé is, kan deze entiteit niet buiten de klasse worden benaderd. Een privé-entiteit is alleen toegankelijk vanuit de klas.
We kunnen de toegangsmodificatoren in de volgende tabel samenvatten.
Toegang tot Specifier | Binnen Klasse | Binnen pakket | Buiten pakket subklasse | Buiten pakket |
---|---|---|---|---|
Privaat | Ja | Niet doen | Niet doen | Niet doen |
Standaard | Ja | Ja | Niet doen | Niet doen |
Beschermd | Ja | Ja | Ja | Niet doen |
Openbaar | Ja | Ja | Ja | Ja |
Vervolgens zullen we elk van deze toegangsspecificaties in detail bespreken.
Standaard toegangsspecificaties
Een standaard toegangsmodificator in Java heeft geen specifiek trefwoord. Als de toegangsmodificator niet is opgegeven, wordt aangenomen dat dit de standaard is. De entiteiten zoals klassen, methoden en variabelen kunnen standaardtoegang hebben.
Een standaardklasse is toegankelijk binnen het pakket, maar het is niet toegankelijk van buiten het pakket, d.w.z. alle klassen binnen het pakket waarin de standaardklasse is gedefinieerd, hebben toegang tot deze klasse.
Evenzo is een standaardmethode of variabele ook toegankelijk binnen het pakket waarin ze zijn gedefinieerd en niet buiten het pakket.
Het onderstaande programma demonstreert de Default Access Modifier in Java.
Uitgang:
In het bovenstaande programma hebben we een klasse en een methode erin zonder enige toegangsmodificator. Daarom hebben zowel de klasse- als de methodeweergave standaardtoegang. Dan zien we dat we in de methode direct een object van de klasse kunnen maken en de methode kunnen aanroepen.
Modificator voor openbare toegang
Een klasse of een methode of een gegevensveld dat is gespecificeerd als ‘openbaar’ is toegankelijk vanuit elke klasse of pakket in het Java-programma. Het openbaar lichaam is zowel binnen als buiten de verpakking toegankelijk. Over het algemeen is de modifier voor openbare toegang een modifier die de entiteit helemaal niet beperkt.
Uitgang:
Beschermde toegangsspecificatie
De beschermde toegangsspecificatie geeft toegang tot entiteiten via subklassen van de klasse waarin de entiteit is gedeclareerd. Het maakt niet uit of de klasse zich in hetzelfde pakket of een ander pakket bevindt, maar zolang de klasse die toegang probeert te krijgen tot een beschermde entiteit een subklasse van deze klasse is, is de entiteit toegankelijk.
Merk op dat een klasse en een interface niet kunnen worden beschermd, d.w.z. we kunnen geen beschermde modificatoren toepassen op klassen en interfaces.
De beschermde toegangsmodificator wordt meestal gebruikt in ouder-kindrelaties.
Het onderstaande programma demonstreert het gebruik van de Protected Access-modifier in Java.
Uitgang:
Private Access Modifier
De 'privé'-toegangsmodificator is degene met het laagste toegankelijkheidsniveau. De methoden en velden die als privé zijn gedeclareerd, zijn niet toegankelijk buiten de klasse. Ze zijn alleen toegankelijk binnen de klas die deze privé-entiteiten als leden heeft.
Merk op dat de privé-entiteiten niet eens zichtbaar zijn voor de subklassen van de klasse. Een private access-modifier zorgt voor inkapseling in Java.
Enkele aandachtspunten met betrekking tot de Private Access Modifier.
- Private access modifier kan niet worden gebruikt voor klassen en interfaces.
- Het bereik van privé-entiteiten (methoden en variabelen) is beperkt tot de klasse waarin ze zijn gedeclareerd.
- Een klasse met een privéconstructor kan geen object van de klasse maken vanaf een andere plaats zoals de hoofdmethode. (Meer details over privéconstructors zijn uitgelegd in onze eerdere tutorial).
Het onderstaande Java-programma gebruikt een Private Access Modifier.
Uitgang:
Het bovenstaande programma geeft een compilatiefout omdat we proberen toegang te krijgen tot leden van privégegevens met behulp van het klasseobject.
Maar er is een methode om toegang te krijgen tot variabelen van privé-leden. Deze methode maakt gebruik van getters en setters in Java. We bieden dus een openbare get-methode in dezelfde klasse waarin de privévariabele wordt gedeclareerd, zodat getter de waarde van de privévariabele kan lezen.
Evenzo bieden we een openbare setter-methode waarmee we een waarde voor de privévariabele kunnen instellen.
Het volgende Java-programma demonstreert het gebruik van getter- en setter-methoden voor privévariabelen in Java.
Uitgang:
Het bovenstaande programma heeft een klasse met een private stringvariabele. We bieden een openbare getName-ledenmethode die de waarde van de privévariabele retourneert. We bieden ook een openbare setName-methode in de klasse die een String als argument gebruikt en deze toewijst aan de private variabele.
Omdat beide methoden openbaar zijn, kunnen we ze gemakkelijk openen met het object van de klasse. Op deze manier kunnen we de compilatiefout verhelpen die elke keer opduikt wanneer we proberen toegang te krijgen tot de privégegevensleden van de klas.
Veel Gestelde Vragen
V # 1) Hoeveel toegangsmodificatoren zijn er in Java?
Antwoord: Java biedt vier modificatoren, namelijk standaard, openbaar, beveiligd en privé.
V # 2) Wat zijn toegangsmodificatoren en niet-toegangsmodificatoren in Java?
gratis junk cleaner voor Windows 10
Antwoord: Toegangsmodificatoren definiëren de zichtbaarheid of het bereik van een programma-entiteit zoals een klasse of een methode of een variabele of een constructor. Niet-toegangsmodificatoren bepalen het gedrag van een entiteit. Bijvoorbeeld, een gesynchroniseerde methode of blok geeft aan dat het kan werken in een multithreading-omgeving, een laatste variabele geeft aan dat het een constante is.
V # 3) Waarom zijn toegangsspecificaties belangrijk?
Antwoord: Modificatoren specificeren welke klasse toegang heeft tot welke andere klassen of methoden of variabelen. Met behulp van toegangsspecificaties kunnen we de toegang van verschillende klassen, methoden, constructors en variabelen beperken en ook zorgen voor inkapseling en herbruikbaarheid van Java-entiteiten.
V # 4) Welke modificatoren worden niet gebruikt voor de klas?
Antwoord: Beschermde en privé-modificatoren worden niet gebruikt voor een klas.
V # 5) Wat zijn niet-toegangsmodificatoren?
Antwoord: Modificatoren die het gedrag van entiteiten zoals klasse, methode of variabelen waarmee ze zijn geassocieerd, definiëren, zijn modificatoren zonder toegang. Zoals de naam doet vermoeden, specificeren ze de toegang niet. Java biedt verschillende niet-toegangsmodificatoren zoals statisch, definitief, gesynchroniseerd, vluchtig, abstract, enz.
Meer over zichtbaarheidsmodificatoren
Java biedt veel modificatoren om toegang te krijgen tot de variabele, methoden en constructors.
Er zijn 4 soorten toegangsvariabelen in Java:
- Privaat
- Openbaar
- Standaard
- Beschermd
# 1) Privé
Als een variabele als privé wordt gedeclareerd, is deze toegankelijk binnen de klasse. Deze variabele is niet beschikbaar buiten de klas. De externe leden hebben dus geen toegang tot de privéleden.
Notitie: Klassen en interfaces mogen niet privé zijn.
# 2) Openbaar
Methoden / variabelen met openbare modificatoren zijn toegankelijk voor alle andere klassen in het project.
# 3) Beschermd
Als een variabele als beschermd is gedeclareerd, kan deze worden benaderd binnen dezelfde pakketklassen en subklasse van alle andere pakketten.
Notitie: Beschermde toegangsmodificator kan niet worden gebruikt voor klassen en interfaces.
# 4) Standaard toegangsmodificator
Als een variabele / methode is gedefinieerd zonder een sleutelwoord voor toegangsmodificatie, heeft die een standaard modificatietoegang.
Toegang tot modificatoren | Zichtbaarheid |
---|---|
Openbaar | Zichtbaar voor alle klassen. |
Beschermd | Zichtbaar voor klassen met in het pakket en de subklassen van een ander pakket. |
Geen toegangsmodificator (standaard) | Zichtbaar voor de lessen met het pakket |
privaat | Zichtbaar met in de klas. Het is niet toegankelijk buiten de klas. |
Demoklasse:
Toegang krijgen tot de leden van de klas in een andere klas:
Uitgang:
Toegang tot de openbare leden:
Uitgang:
Bobby
vind het verschil tussen twee bestanden linux
Belangrijke punten:
- Toegangsspecificaties bepalen de zichtbaarheid van de klasse.
- Als er geen trefwoord wordt vermeld, is dat de standaardtoegangsmodificator.
- Vier modificatoren in Java zijn openbaar, privé, beschermd en standaard.
- Persoonlijke en beveiligde trefwoorden kunnen niet worden gebruikt voor klassen en interfaces.
Gevolgtrekking
In deze tutorial hebben we Access Modifiers in Java in detail onderzocht. Java biedt vier soorten toegangsmodificatoren of zichtbaarheidsspecificaties, d.w.z. standaard, openbaar, privé en beschermd. Aan de standaardmodifier is geen trefwoord gekoppeld.
Als een klasse, methode of variabele geen toegangsspecificatie heeft die eraan is gekoppeld, nemen we aan dat deze standaardtoegang heeft. Openbare toegangsmodificator geeft toegang tot alles, zowel binnen als buiten de klas of het pakket. Er is geen limiet op toegang in het geval van de openbare modifier.
Beschermde zichtbaarheidsspecificatie geeft alleen toegang tot subklassen die de klasse erven waarin beschermde leden zijn gedeclareerd. Met de modificator voor privétoegang is de minste toegankelijkheid met de privégegevensleden alleen toegankelijk binnen de klas.
Modificatoren beperken het bereik van gegevensleden zoals klassen, constructors, methoden en variabelen en definiëren de limiet voor welke klassen of pakketten er toegang toe hebben. Toegangsspecificaties moedigen inkapseling en hergebruik in Java aan. Merk op dat klassen en interface niet beschermd of privé kunnen zijn.
Bezoek hier om Java vanaf het begin te leren.
Aanbevolen literatuur
- Zelfstudie over reflectie in Java met voorbeelden
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Inleiding tot de programmeertaal van Java - videozelfstudie
- Java SWING-zelfstudie: afhandeling van containers, componenten en gebeurtenissen
- Java String met String Buffer en String Builder Tutorial
- Java-implementatie: creatie en uitvoering van Java JAR-bestand
- Java Virtual Machine: hoe JVM helpt bij het uitvoeren van Java-applicaties
- Zelfstudie voor Java Collections Framework (JCF)