Java >> Tutoriel Java >  >> Java

Spécificateurs d'accès en Java

Spécificateurs d'accès Java

Nous savons qu'il existe peu de spécificateurs d'accès en Java . Nous allons explorer les spécificateurs d'accès un par un. Nous étudierons d'abord qu'est-ce que les spécificateurs d'accès en java ? puis après nous étudierons quelles sont les utilisations de ces spécificateurs d'accès.

Spécificateurs d'accès

Spécificateurs d'accès sont les mots-clés comme "public" , "protégé" , "par défaut" et "privé" qui a sa signification particulière en Java.

Il définit la portée d'accès de la variable, des méthodes et des classes et ici la portée d'accès signifie la zone ou l'espace où une variable ou des classes ou des méthodes sont accessibles.

Types de spécificateurs d'accès

En Java, il existe quatre types de spécificateurs d'accès et le nom de ces spécificateurs d'accès est donné ci-dessous :

  1. spécificateurs d'accès public
  2. spécificateurs d'accès protégés
  3. spécificateurs d'accès par défaut
  4. spécificateurs d'accès privé

Maintenant, à l'aide d'exemples, nous allons décrire chaque spécificateur d'accès un par un en Java.

1) spécificateurs d'accès public

  • "publique" est le mot clé qui est introduit en java.
  • La portée d'accès du "public" est partout comme dans toutes les classes et méthodes également.
  • Si nous préfixons "public" mot-clé avec n'importe quelle classe, variable ou méthode, il peut être accessible par n'importe quelle classe ou méthode.

Exemple :

// ClassA save in package1

package package1;

public class ClassA {
    public void display() {
        System.out.println("We are in Java World");

    }
}

package package2;

// importing package1 because we are using ClassA of package1 
import package1.ClassA;

// class ClassB save in package2   
class ClassB {
    public static void main(String args[]) {
        ClassA ca = new ClassA();
        ca.display();
    }
}

Sortie

We are in Java World

2) spécificateurs d'accès protégés

  • "protégé" est le mot clé qui est introduit en java.
  • La portée d'accès du "protégé" n'est pas partout et il est accessible dans la même classe ou sa classe enfant ou dans toutes les classes qui sont définies dans le même package.
  • Si nous préfixons "protégé" mot-clé avec n'importe quelle classe, variable ou méthode, il peut être accédé par la même classe ou ses classes enfants ou toutes les classes qui sont définies dans le même package.

Exemple :

// ClassA save in package1  
package package1;
public class ClassA {
    protected void display() {
        System.out.println("We are in Java World");
    }
}

package package2;

// importing package1 because 
// we are using ClassA of package1 
import package1.ClassA;
// class ClassB save in package2   
class ClassB extends ClassA {
    public static void main(String args[]) {
        ClassA ca = new ClassA();
        ca.display();
    }
}

Sortie

We are in Java World

3) spécificateurs d'accès par défaut

  • "par défaut" est le mot clé qui est introduit en java.
  • La portée d'accès de "par défaut" n'est pas partout.
  • Il n'est pas obligatoire de préfixer "default" mot-clé avec n'importe quelle classe, variable ou méthode car par défaut, la classe, la variable ou la méthode est publique par défaut en Java et elle est accessible uniquement par toutes les classes définies dans le même package.

Exemple :

// ClassA save in package1  
package package1;
class ClassA {
    void display() {
        System.out.println("We are in Java World");
    }
}

package package2;
// importing package1 because we are using 
// ClassA of package1 
import package1.ClassA;

// ClassB save in package2   
class ClassB {
    public static void main(String args[]) {

        /*  Here we will get compiletime error because 
            ClassA is not public so we can't access 
            this class outside the package 
        */
        ClassA ca = new ClassA();
        ca.display();
    }
}

Sortie

ClassB.java:3: error: ClassA is not public in package1; 
cannot be accessed from outside package
import package1.ClassA;
               ^
ClassB .java:10: error: cannot find symbol
ClassA ca= new ClassA();
 ^
  symbol:   class ClassA
  location: class ClassB
ClassB.java:10: error: cannot find symbol
 ClassA ca= new ClassA();
           ^
  symbol:   class ClassA
  location: class ClassB
3 errors

4) spécificateurs d'accès privé

  • "privé" est le mot clé qui est introduit en java.
  • La portée d'accès du "privé" n'est pas partout.
  • Si nous préfixons "privé" mot-clé avec n'importe quelle variable ou méthode, il n'est accessible que dans la même classe.

Exemple :

// ClassA save in package1  
package package1;
class ClassA {
    private void display() {
        System.out.println("We are in Java World");
    }
}

package package2;
// importing package1 because we are using 
// ClassA of package1 
import package1.ClassA;

// ClassB save in package2   
public class ClassB {
    public static void main(String args[]) {

        /*  Here we will get compiletime error because 
            ClassA method is private so we can't access 
            this method outside the class and other package too
        */
        ClassA ca = new ClassA();
        ca.display();
    }
}

Sortie

ClassB.java:3: error: ClassA is not public in package1; 
cannot be accessed from outside package
import package1.ClassA;
               ^
ClassB .java:10: error: cannot find symbol
ClassA ca= new ClassA();
 ^
  symbol:   class ClassA
  location: class ClassB
ClassB.java:10: error: cannot find symbol
 ClassA ca= new ClassA();
           ^
  symbol:   class ClassA
  location: class ClassB
3 errors

Balise Java