Modificateurs d'accès Java (avec exemples)

Dans ce didacticiel, nous allons découvrir 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, interfaces, variables, méthodes, constructeurs, données membres et 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,

  • method1 is public- Cela signifie qu'il est accessible par d'autres classes.
  • method2 is private- Cela signifie qu'il n'est pas accessible par d'autres classes.

Notez le mot public- clé 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 découvrir 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 La description
Défaut les déclarations ne sont visibles que dans le package (package private)
Privé les déclarations ne sont visibles que dans la classe
Protégé les déclarations sont visibles dans le package ou dans toutes les sous-classes
Publique les déclarations sont visibles partout

Modificateur d'accès par défaut

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

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

Ici, la classe Logger a le modificateur d'accès par défaut. Et la classe est visible par toutes les classes appartenant au package defaultPackage. Cependant, si nous essayons d'utiliser la classe Logger dans une autre classe en dehors de defaultPackage, nous obtiendrons une erreur de compilation.

Modificateur d'accès privé

Lorsque des variables et des méthodes sont déclarées private, elles 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écutons le programme, nous obtenons 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 la classe Data depuis la classe Main.

Vous vous demandez peut-être si nous avons besoin d'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 :

 Le nom est Programiz

Dans l'exemple ci-dessus, nous avons une variable privée nommée name. Afin d'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é le thismot-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 les classes et les 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 données membres sont déclarées 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 :

 Je suis un animal

Dans l'exemple ci-dessus, nous avons une méthode protégée nommée display()dans la classe Animal. La classe Animal est héritée par la classe Dog. Pour en savoir plus sur l'héritage, consultez Héritage Java.

Nous avons ensuite créé un objet dog de la classe Dog. 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 depuis les classes enfants, nous pouvons accéder à la méthode de la classe Animal depuis la classe Dog.

Remarque : nous ne pouvons pas déclarer de classes ou d'interfaces protecteden Java.

Modificateur d'accès public

Lorsque des méthodes, des variables, des classes, etc. sont déclarées public, 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 :

Je suis un animal. J'ai 4 pattes.

Ici,

  • La classe publique Animal est accessible depuis la classe Main.
  • La variable publique legCount est accessible à partir de la classe Main.
  • La méthode publique display()est accessible à partir de la classe Main.

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

Accessibilité de tous les modificateurs d'accès en Java

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. Pour éviter toute utilisation abusive des données. Pour en savoir plus sur l'encapsulation, visitez Encapsulation Java.

Articles intéressants...