Introduzione ai modificatori di accesso in Java

Come tutti sappiamo, Java è uno dei migliori linguaggi di programmazione al mondo. Miliardi di dispositivi si affidano ad esso negli ultimi due decenni. Java è un linguaggio veloce, affidabile, sicuro e multipiattaforma. Java funziona su qualsiasi dispositivo purché tale dispositivo disponga di Java Runtime (JRE), che lo rende un linguaggio multipiattaforma, veloce e affidabile. Il modificatore di accesso è di proprietà di Java, il che lo rende sicuro su più piattaforme. Java fornisce al programmatore la sicurezza a livello di classe (durante l'incapsulamento) usando la proprietà del modificatore di accesso. Secondo il libro, Class è il progetto per la costruzione di un oggetto in Java, che lo rende "blocco predefinito" per il programma in quanto Java è un linguaggio orientato agli oggetti. Un modificatore di accesso specifica come qualsiasi classe può accedere a una determinata classe e ai suoi campi, costruttori e metodi all'interno e pacchetti diversi. Classe, campi, costruttori e metodi possono avere uno dei quattro diversi modificatori di accesso Java.

  • Privato
  • Pubblico
  • protetta
  • Predefinito: nessuna parola chiave richiesta.

Diversi modificatori di accesso in Java

La seguente tabella riassume come possiamo applicare modificatori di accesso Java al programma:

modificatoriClassePacchettiSotto-ClassMondo
PrivatoYNNN
PubblicoYYYY
protettaYYYN
PredefinitoYYNN

Tratteremo ogni modificatore di accesso Java nelle seguenti sezioni.

1) Predefinito

Quando una classe, i membri dei dati e la variabile vengono dichiarati non scrivendo con un modificatore di accesso, vengono impostati sul modificatore di accesso "predefinito". Il modificatore di accesso "predefinito" indica che il codice all'interno di qualsiasi classe può accedere all'intero programma all'interno dello stesso pacchetto.

  • Questo modificatore di accesso funziona solo all'interno dello stesso pacchetto.
  • A volte, il modificatore di accesso "predefinito" viene anche definito modificatore di accesso al pacchetto, poiché è accessibile solo all'interno dello stesso pacchetto.
  • Le sottoclassi non possono accedere a metodi, membri di dati e variabili (campi) nella superclasse, se questi metodi, membri di dati e variabili (campi) contrassegnati con il modificatore di accesso "predefinito" nella classe a meno che queste sottoclassi non si trovino nello stesso pacchetto del superclasse.

Esempio 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Produzione:

Ciao mondo!

Esempio n. 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Produzione:

Errore di compilazione del tempo.

2) Protetto

La sintassi "protetta" viene utilizzata dagli utenti quando desiderano utilizzare questo modificatore di accesso.

  • Questo modificatore di accesso è accessibile solo all'interno dello stesso pacchetto o delle stesse sottoclassi in classi diverse (ma gli utenti devono importare quel pacchetto dove è stato specificato).
  • L'utente non può contrassegnare la classe e si interfaccia con il modificatore di accesso "protetto". Tuttavia, metodi e campi possono essere dichiarati protetti Se metodi e campi si trovano in un'interfaccia.

Per esempio:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Produzione:

Ciao mondo!

3) Pubblico

L'utente può dichiarare una classe, un metodo, un costruttore e un'interfaccia con un modificatore di accesso "pubblico", al quale può accedere tramite qualsiasi classe, metodo, costruttore e interfaccia all'interno di pacchetti diversi.

  • Questo modificatore di accesso ha il Boundless tra tutti i modificatori.
  • Quando una classe, metodi o pacchetto contrassegnati con modificatore di accesso "pubblico", dove è accessibile a tutti da qualsiasi parte del programma.
  • Non ci sono limiti all'ambito della classe di accesso "pubblica", ai metodi.

Per esempio: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Produzione:

Ciao mondo!

4) Privato

Quando un metodo o una variabile contrassegnati come modificatori di accesso "privati", il codice all'interno di quella stessa classe può accedere solo a tali metodi e variabili.

L'utente non può dichiarare alcuna superclasse con modificatore di accesso "privato" nel programma e Se l'utente lo fa con qualsiasi classe, allora rende tale classe non accessibile a nessun'altra classe nello stesso pacchetto, il che rende la classe inutilizzabile sebbene l'utente può dichiarare variabili e metodi all'interno della classe con modificatore di accesso "privato" in modo tale che nessuno possa utilizzare tali variabili e metodi.

Di tanto in tanto le persone si confondevano con il modificatore di accesso "privato" e "protetto", ma entrambi sono diversi.

Per esempio: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Produzione:

errore: display () ha accesso privato in eduCBA obj.display ();

Conclusione

Il modificatore di accesso Java ti dà un vantaggio in più sul tuo programma quando lo rendi pubblico. Mentre studiamo sopra, diversi tipi di modificatori di accesso in JAVA e loro specifiche.

Quindi tieni a mente ogni volta che usi uno di essi come accesso di classe o interfaccia poiché non solo forniscono accesso ma li sovrascrivono. Mentre c'è sempre una preoccupazione per l'accessibilità del metodo nel programma. Ad esempio, se a un'interfaccia viene assegnato il modificatore di accesso "predefinito" nella superclasse, è consentito sovrascrivere i modificatori di accesso utilizzati nella sottoclasse del metodo.

Nota: la classe include variabili, costruttori, campi e metodi e l'interfaccia include campi o metodi specifici.

Articoli consigliati

Questa è una guida ai modificatori di accesso in Java. Qui discutiamo i diversi tipi di modificatori di accesso in Java e le loro specifiche. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Programmazione orientata agli oggetti in Java
  2. Domande di intervista Java
  3. Che cos'è la sincronizzazione in Java?
  4. Autoboxing e Unboxing in Java
  5. Modificatori di accesso in C ++ (tipi)
  6. Guida straordinaria ai modificatori di accesso in C #
  7. Modificatori di accesso in PHP
  8. JRE vs JVM | Le 8 principali differenze con (Infografica)

Categoria: