Toegang tot modificatoren in Java: alles wat u moet weten



Dit artikel helpt u te begrijpen wat toegangsmodificatoren in Java zijn en leert u meer over de verschillende typen, zoals openbaar, privé, beveiligd en standaard.

Toegangsmodificatoren in Java worden gebruikt om de toegangsniveaus voor klassen, variabelemethoden en constructor te specificeren.Het helpt bij het bijwerken van de waarde van een . Ze zijn ook bekend als zichtbaarheid bewerken. Door middel van deze blog zal ik je helpen begrijpen wat het belang is van toegangsmodificatoren in .

Ik behandel de onderwerpen in de volgende volgorde:





sorteerfunctie c ++

Laten we beginnen met het eerste onderwerp.

Wat is Access Modifier?



Je bent misschien tegengekomen openbaar , privaat en beschermd trefwoorden tijdens het oefenen van een , deze worden de toegangsmodificatoren genoemd.Zoals de naam doet vermoeden, helpt Access Modifiers in Java om het bereik van een klasse, constructor, variabele, methode of gegevenslid te beperken.

Toegangsmodificatoren kunnen afzonderlijk worden gespecificeerd voor een klasse, constructors,velden en methoden. Ze worden ook wel Java-toegangsspecificaties , maar de juiste naam is Modificatoren voor Java-toegang .

Dus laten we dieper ingaan op de verschillende soorten toegangsmodificatoren in Java.



Typen toegangsmodificator

Er zijn vier sleutelwoorden voor toegangsmodificatoren en zij zijn:

  • Standaard toegangsmodificator
  • Private Access Modifier
  • Modificator voor openbare toegang
  • Beschermde toegangsmodificator

Laten we ze allemaal in detail bekijken.

Standaard toegangsmodificator

Als er geen toegangsmodificator is opgegeven voor een bepaalde klasse, methode of een gegevenslid, wordt er gezegd dat deze de standaard toegang tot bewerken.

De datum leden, of methoden die niet worden gedeclareerd met gebruikmaking van ingangsmodificatoren, hebben een standaardmodificator die alleen toegankelijk is binnen een vergelijkbare bundel. Hetbetekent dat je niet expliciet een toegangsmodificator declareert voor een klasse, veld, methode, etc.

Voorbeeld:

pakket p1 // Klasse Cursus heeft standaard toegangsmodificator klasse Cursus {void display () {System.out.println ('Hallo wereld!')}}

Laten we vervolgens doorgaan naar het volgende type, privétoegangsmodificator.

Private Access Modifier

  • De methoden of gegevensleden die als privé zijn gedeclareerd, zijn alleen toegankelijk binnen de klasse waarin ze zijn gedeclareerd.
  • Klassen of interface op het hoogste niveau kunnen niet als privé worden aangemerkt in het licht van het feit dat
    • Privé betekent ' net zichtbaar in de omsluitende klasse '.
    • Beschermd betekent ' j merkbaar in de omsluitende klasse en eventuele subklassen '.
  • Als een klas heeftnaarparticuliere constructeur dan kun je het object van die klasse niet van buiten de klasse maken.
  • Klassen kunnen niet worden gemarkeerd met de modificator voor privétoegang .
  • Het aanduiden van een klasse met de privétoegangsmodificator zou betekenen dat er geen andere klasse bij kan komen. Dit houdt over het algemeen in dat je de klas op geen enkele manier kunt gebruiken. Op deze manier houdt de private access-modifier geen rekening met klassen.

Opmerking : Klasse of interface kan niet als privé worden gedeclareerd.

Syntaxis:

openbare klas Klok {privé lange tijd = 0}

Bekijk een voorbeeld om een ​​duidelijk idee te krijgen van deze private access-modifier.

Voorbeeld:

pakket p klasse A {private void display () {System.out.println ('Edureka')}} klasse B {public static void main (String args []) {A obj = new A () // probeert toegang te krijgen tot private methode van een andere klasse obj.display ()}}

De output van dit programma is:

fout: display () heeft privétoegang in A

obj.display ()

Ik hoop dat jullie duidelijk zijn met de modifier voor privétoegang. Laten we vervolgens naar het volgende type gaan: modificator voor openbare toegang.

Modificator voor openbare toegang

  • De modifier voor openbare toegang wordt gespecificeerd met behulp van het sleutelwoord openbaar.
  • De openbare toegangsmodificator heeft een breed bereik onder alle andere toegangsmodificatoren.
  • , methoden of gegevensleden die zijn gedeclareerd als openbaar zijn overal toegankelijk het programma. Er is geen beperking op de reikwijdte van leden van openbare gegevens.

Syntaxis:

structuur van een Java-programma
package edureka.co public class PublicClassDemo {// Hier heb ik geen enkele modifier genoemd, dus het fungeert als een standaard modifier public int myMethod (int x) {return x}}

Bekijk nu een voorbeeld om een ​​duidelijk idee te krijgen van deze modificator voor openbare toegang.

Voorbeeld:

pakket p1 public class A {public void display () {System.out.println ('edureka!')}}
pakket p2 import p1. * class B {public static void main (String args []) {A obj = new A obj.display ()}}

Uitgang: edureka!

Dit is alles over modificatoren voor openbare toegang in Java.

Laten we verder gaan met de volgende toegangsmodificatoren in Java, beschermde toegangsmodificatoren.

Beschermde toegangsmodificator

  • De beschermde toegangsmodificator wordt gespecificeerd met behulp van het sleutelwoord beschermd .
  • De methoden of gegevensleden die als beschermd zijn gedeclareerd, zijn toegankelijk binnen hetzelfde pakket of subklassen in een ander pakket.
  • Beveiligde leden zijn alleen toegankelijk in de onderliggende of afgeleide klassen.

Syntaxis:

package packageFourProtected public class ProtectedClassFour {protected int myMethod (int a) {return a}}

Laten we een voorbeeld bekijken.

Voorbeeld:

spackage p1 // Klasse A openbare klasse A {protected void display () {System.out.println ('Java Certification Training')}}
pakket p2 import p1. * // alle klassen in pakket p1 importeren // Klasse B is een subklasse van A klasse B breidt A | {public static void main (String args []) {B obj = new B () obj.display ()}}

Uitvoer - Toegang tot modificatoren in Java - Edureka

Dit is alles wat u moet weten over de verschillende methoden onder de toegangsmodificatoren in Java. Laten we naar het volgende onderwerp gaan.

Toegang tot modificatoren met overschrijven van de methode

Als u in dat geval een methode overschrijft, mag de overschreven methode die in de subklasse wordt gedeclareerd, niet beperkend zijn.

Bekijk het onderstaande voorbeeld eens.

class A {protected void msg () {System.out.println ('Hello java')}} public class Simple breidt uit A {void msg () {System.out.println ('Hello java')} // CTError public static void main (String args []) {Simple obj = new Simple () obj.msg ()}}

De standaardmodifier is beperkter dan beschermd. Dit is de reden waarom er een compileerfout is.

Toegangscontrole en erfenis

  • Als u in dat geval een subklasse van een bepaalde klasse maakt, kunnen aan de methoden in die subklasse geen minder toegankelijke toegangsmodificatoren zijn toegewezen dan aan de superklasse.
  • Als een methode in de superklasse bijvoorbeeld openbaar dan moet het ook openbaar zijn in de subklasse. Als een methode in de superklasse is beschermd, dan moet het beschermd of openbaar zijn in de gespecificeerde subklasse.
  • Methoden die als privé zijn gedeclareerd, worden helemaal niet overgenomen.

Dit brengt ons bij het einde van dit artikel waar we het hebben geleerd op de Access-modificatoren in Java. Ik hoop dat je duidelijk bent met alles wat in deze tutorial met je is gedeeld.

Zorg ervoor dat je zoveel mogelijk oefent en terugkeert naar je ervaring.

Als je dit artikel over 'Toegangsmodificatoren in Java' relevant vond, bekijk dan het een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen ook een curriculum te bedenken dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Mocht u nog vragen tegenkomen, stel dan gerust al uw vragen in de commentarensectie van 'Access Modifiers in Java' en ons team zal u graag antwoorden.