mot-clé private en Java
Le mot-clé private
en Java est un modificateur d'accès utilisé pour restreindre la visibilité des champs, des méthodes et des constructeurs à la classe qui les définit. Ce mécanisme d'encapsulation permet de protéger l'état interne d'un objet et favorise le masquage des données.
Utilisation
Le modificateur d'accès private
garantit que les membres (champs, méthodes, constructeurs) d'une classe ne sont accessibles qu'à l'intérieur de la même classe. Il est généralement utilisé pour renforcer l'encapsulation et empêcher tout accès non autorisé depuis l'extérieur de la classe.
Syntax
class ClassName {
private dataType fieldName;
private returnType methodName() {
// method body
}
}
dataType fieldName
: Déclaration d'un champ privé.returnType methodName()
: Déclaration d'une méthode privée.
Exemples
Exemple 1 : Domaine privé
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Dans cet exemple, le champ name
est déclaré comme private
, ce qui signifie qu'il n'est pas possible d'y accéder directement depuis l'extérieur de la classe Person
. Les méthodes setName
et getName
permettent de contrôler l'accès à ce champ.
Exemple 2 : Méthode privée
public class Calculator {
public int add(int a, int b) {
return a + b;
}
private int subtract(int a, int b) {
return a - b;
}
public int performSubtraction(int a, int b) {
return subtract(a, b);
}
}
Ici, la méthode subtract
est privée et ne peut être appelée qu'au sein de la classe Calculator
. La méthode performSubtraction
fournit une interface publique permettant d'utiliser la méthode subtract
.
Exemple 3 : Constructeur privé
public class Singleton {
private static Singleton instance;
private Singleton() {
// private constructor
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Cet exemple illustre un modèle de singleton où le constructeur est privé, ce qui garantit qu'une seule instance de la classe Singleton
peut être créée. La méthode getInstance
permet d'accéder à une instance unique.
Conseils et bonnes pratiques
- Encapsulation: Utilisez
private
pour encapsuler l'état interne d'une classe et n'exposez que les méthodes nécessaires pour interagir avec cet état. - Accès contrôlé: Fournissez des méthodes publiques de type "getter" et "setter" pour contrôler l'accès aux champs privés et leur modification.
- Classes immuables: Pour les classes immuables, faites en sorte que les champs soient
private
et final, et évitez de fournir des setters.public class ImmutableClass { private final int value; public ImmutableClass(int value) { this.value = value; } public int getValue() { return value; } }
- La sécurité: Utilisez
private
pour cacher les méthodes et les données sensibles qui ne doivent pas être exposées à d'autres classes. - Modèle Singleton: Dans les modèles de singleton, utilisez un constructeur privé pour empêcher l'instanciation directe de la classe.