Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Modificateurs d'accès Java

Modificateurs d'accès Java

Dans ce didacticiel, nous découvrirons le modificateur d'accès Java, ses types et comment les utiliser à l'aide d'exemples.

Que sont les modificateurs d'accès ?

En Java, les modificateurs d'accès sont utilisés pour définir l'accessibilité (visibilité) des classes, des interfaces, des variables, des méthodes, des constructeurs, des membres de données et des méthodes de définition. Par exemple,

class Animal {
    public void method1() {...}

   private void method2() {...}
}

Dans l'exemple ci-dessus, nous avons déclaré 2 méthodes :method1() et method2(). Ici,

Notez le mot-clé public et private . Ce sont des modificateurs d'accès en Java. Ils sont également appelés modificateurs de visibilité.

Remarque  :Vous ne pouvez pas définir le modificateur d'accès des méthodes getters.

Types de modificateur d'accès

Avant de vous renseigner sur les types de modificateurs d'accès, assurez-vous de connaître les packages Java.

Il existe quatre mots-clés de modificateurs d'accès en Java et ils sont :

Modificateur Description
Par défaut les déclarations ne sont visibles que dans le package (package private)
Privé les déclarations sont visibles uniquement dans la classe
Protégé les déclarations sont visibles dans le package ou dans toutes les sous-classes
Public les déclarations sont visibles partout

Modificateur d'accès par défaut

Si nous ne spécifions pas explicitement de modificateur d'accès pour les classes, les méthodes, les variables, etc., le modificateur d'accès par défaut est pris en compte par défaut. Par exemple,

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

Ici, le enregistreur class a le modificateur d'accès par défaut. Et la classe est visible pour toutes les classes qui appartiennent au defaultPackage forfait. Cependant, si nous essayons d'utiliser le Logger classe dans une autre classe en dehors de defaultPackage, nous aurons une erreur de compilation.

Modificateur d'accès privé

Lorsque les variables et les méthodes sont déclarées private , ils ne sont pas accessibles en dehors de la classe. Par exemple,

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

Dans l'exemple ci-dessus, nous avons déclaré une variable privée nommée nom et une méthode privée nommée display() . Lorsque nous exécuterons le programme, nous obtiendrons l'erreur suivante :

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

L'erreur est générée car nous essayons d'accéder à la variable privée et à la méthode privée de Data classe de la Principale classe.

Vous vous demandez peut-être si nous devons accéder à ces variables privées. Dans ce cas, nous pouvons utiliser la méthode des getters et des setters. Par exemple,

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

Sortie :

The name is Programiz

Dans l'exemple ci-dessus, nous avons une variable privée nommée name . Pour accéder à la variable depuis la classe externe, nous avons utilisé les méthodes :getName() et setName() . Ces méthodes sont appelées getter et setter en Java.

Ici, nous avons utilisé la méthode setter (setName() ) pour attribuer une valeur à la variable et à la méthode getter (getName() ) pour accéder à la variable.

Nous avons utilisé this mot-clé à l'intérieur de setName() pour faire référence à la variable de la classe. Pour en savoir plus sur ce mot-clé, visitez Java ce mot-clé.

Remarque :Nous ne pouvons pas déclarer de classes et d'interfaces privées en Java. Cependant, les classes imbriquées peuvent être déclarées privées. Pour en savoir plus, visitez Java Nested and Inner Class.

Modificateur d'accès protégé

Lorsque les méthodes et les membres de données sont déclarés protected , nous pouvons y accéder dans le même package ainsi qu'à partir de sous-classes. Par exemple,

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

Sortie :

I am an animal

Dans l'exemple ci-dessus, nous avons une méthode protégée nommée display() à l'intérieur de l'Animal classer. L'Animal la classe est héritée par le Chien classer. Pour en savoir plus sur l'héritage, visitez l'héritage Java.

Nous avons ensuite créé un objet chien du Chien classer. En utilisant l'objet, nous avons essayé d'accéder à la méthode protégée de la classe parent.

Étant donné que les méthodes protégées sont accessibles à partir des classes enfants, nous pouvons accéder à la méthode de Animal classe du Chien classe.

Remarque :On ne peut pas déclarer de classes ou d'interfaces protected en Java.

Modificateur d'accès public

Lorsque des méthodes, des variables, des classes, etc. sont déclarées public , alors nous pouvons y accéder de n'importe où. Le modificateur d'accès public n'a aucune restriction de portée. Par exemple,

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

Sortie :

I am an animal.
I have 4 legs.

Ici,

  • La classe publique Animal est accessible depuis le Principal classe.
  • La variable publique legCount est accessible depuis le Principal classe.
  • La méthode publique display() est accessible depuis le Principal classe.

Modificateurs d'accès résumés en une figure

Les modificateurs d'accès sont principalement utilisés pour l'encapsulation. Je peux nous aider à contrôler quelle partie d'un programme peut accéder aux membres d'une classe. Ainsi, l'utilisation abusive des données peut être évitée. Pour en savoir plus sur l'encapsulation, visitez Java Encapsulation.


Java

  1. Modificateurs d'accès C#
  2. Opérateurs Java
  3. Commentaires Java
  4. Java pour chaque boucle
  5. Chaînes Java
  6. InterfaceJava
  7. Java essayer avec des ressources
  8. Annotations Java
  9. Assertions Java