advertenties

Java biedt een aantal access modifiers om toegangsniveaus in te stellen voor klassen, variabelen, methoden en constructeurs. De vier toegangsniveaus zijn −

  • zichtbaar voor het pakket, de standaard. Er zijn geen modifiers nodig.
  • alleen zichtbaar voor de klasse (privé).
  • zichtbaar voor de wereld (publiek).
  • zichtbaar voor het pakket en alle subklassen (beveiligd).,

standaard Access Modifier-geen trefwoord

standaard access modifier betekent dat we geen access modifier expliciet declareren voor een klasse, veld, Methode, enz.

een variabele of methode gedeclareerd zonder enige Toegangscontrole modifier is beschikbaar voor elke andere klasse in hetzelfde pakket. De velden in een interface zijn impliciet openbaar statisch definitief en de methoden in een interface zijn standaard openbaar.,

voorbeeld

variabelen en methoden kunnen worden gedeclareerd zonder enige modifiers, zoals in de volgende voorbeelden –

String version = "1.5.1";boolean processOrder() { return true;}

Private Access Modifier – Private

methoden, variabelen en constructors die privé worden verklaard, kunnen alleen worden benaderd binnen de opgegeven klasse zelf.

Private access modifier is het meest beperkende toegangsniveau. Klasse en interfaces kunnen niet privé zijn.

variabelen die privé worden verklaard kunnen buiten de klasse worden benaderd, als publieke getter methoden aanwezig zijn in de klasse.,

het gebruik van de private modifier is de belangrijkste manier waarop een object zichzelf inkapselt en data van de buitenwereld verbergt.

voorbeeld

de volgende klasse gebruikt privé Toegangscontrole –

Hier is de opmaakvariabele van de loggerklasse privé, dus er is geen manier voor andere klassen om de waarde direct op te halen of in te stellen.

dus, om deze variabele beschikbaar te maken voor de buitenwereld, hebben we twee openbare methoden gedefinieerd: getFormat (), die de waarde van format retourneert, en setFormat(String), die zijn waarde bepaalt.,

Public Access Modifier-Public

a class, method, constructor, interface, etc. gedeclareerd publiek kan worden benaderd vanuit elke andere klasse. Daarom kunnen velden, methoden, blokken die binnen een openbare klasse zijn gedeclareerd, worden benaderd vanuit elke klasse die tot het Java-universum behoort.

echter, als de publieke klasse die we proberen te benaderen in een ander pakket zit, dan moet de publieke Klasse nog steeds geïmporteerd worden. Vanwege klasse-overerving worden alle publieke methoden en variabelen van een klasse geërfd door zijn subklassen.,

voorbeeld

de volgende functie gebruikt publieke Toegangscontrole –

public static void main(String arguments) { // ...}

de hoofdmethode() van een toepassing moet openbaar zijn. Anders kon het niet worden aangeroepen door een Java interpreter (zoals java) om de klasse uit te voeren.

Protected Access Modifier-Protected

variabelen, methoden en constructors, die beschermd zijn verklaard in een superklasse, kunnen alleen worden benaderd door de subklassen in een ander pakket of een klasse binnen het pakket van de klasse van de beschermde leden.

de protected access modifier kan niet worden toegepast op klasse en interfaces., Methoden, velden kunnen beschermd worden verklaard, maar methoden en velden in een interface kunnen niet beschermd worden verklaard.

Protected access geeft de subklasse een kans om de helper methode of variabele te gebruiken, terwijl het voorkomen wordt dat een niet-gerelateerde klasse het probeert te gebruiken.

voorbeeld

de volgende bovenliggende klasse gebruikt beveiligde Toegangscontrole, om de onderliggende klasse override openspeaker() methode toe te staan −

class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details }}class StreamingAudioPlayer extends AudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details }}

hier, als we openSpeaker() methode als privé definiëren, dan is deze niet toegankelijk vanuit een andere klasse dan AudioPlayer., Als we het als publiek definiëren, dan wordt het toegankelijk voor de hele buitenwereld. Maar onze bedoeling is om deze methode alleen aan zijn subklasse bloot te stellen, daarom hebben we protected modifier gebruikt.

toegangscontrole en overerving

de volgende regels voor overgeërfde methoden worden afgedwongen −

  • methoden die openbaar zijn verklaard in een superklasse moeten ook openbaar zijn in alle subklassen.

  • methoden die in een superklasse beschermd zijn verklaard, moeten beschermd zijn of openbaar in subklassen; ze kunnen niet privé zijn.,

  • methoden die privé worden genoemd, worden helemaal niet geërfd, dus er is geen regel voor hen.

java_modifier_types.htm
advertenties