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,
- méthode1 est
public
- Cela signifie qu'il peut être consulté par d'autres classes. - méthode2 est
private
- Cela signifie qu'il n'est pas accessible aux autres classes.
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