Pouvons-nous accéder à une variable privée en dehors de la classe en Java ?
Variable privée en Java
La variable privée peut déclarer avec le mot-clé privé.
Dans l'exemple ci-dessous, nous verrons que nous pouvons accéder à une variable privée dans la même classe.
Exemple :
class CanPrivateVariableAccessInTheSameClass{ /* Declare private variable named x */ private int x; /* Define constructor for private variable initialization */ CanPrivateVariableAccessInTheSameClass(int x){ this.x = x; } /* Define method to print value of variable x */ public void privateVariableAccess(){ System.out.println("value of x is :" +x); } /* Main method definition */ public static void main(String[] args) { /* create CanPrivateVariableAccessInTheSameClass object and pass the value of private variable */ CanPrivateVariableAccessInTheSameClass cpvaitsc = new CanPrivateVariableAccessInTheSameClass(10); /* call CanPrivateVariableAccessInTheSameClass method with the help of CanPrivateVariableAccessInTheSameClass object */ cpvaitsc.privateVariableAccess(); } }
Sortie
D:\Java Articles>java CanPrivateVariableAccessInTheSameClass value of x is :10
Dans l'exemple ci-dessous, nous verrons que nous ne pouvons pas accéder à une variable privée en dehors de la classe.
PublicitéExemple :
class CanPrivateVariableAccessInTheDifferentClass{ /* Declare private variable named x */ private int x=10; /* Define method to print value of variable x */ public void privateVariableAccess(){ System.out.println("value of x is :" +x); } public static void main(String[] args){ } } class OutsideClass extends CanPrivateVariableAccessInTheDifferentClass{ public static void main(String[] args){ CanPrivateVariableAccessInTheDifferentClass cpvaitdc = new CanPrivateVariableAccessInTheDifferentClass(); /* x is variable of CanPrivateVariableAccessInTheDifferentClass class so we can call x variable with the help of CanPrivateVariableAccessInTheDifferentClass object */ System.out.println(cpvaitdc.x); } }
Sortie
D:\Java Articles>javac CanPrivateVariableAccessInTheDifferentClass.java CanPrivateVariableAccessInTheDifferentClass.java:27: error: x has private access in CanPrivateVariableAccessInTheDifferentClass System.out.println(cpvaitdc.x); ^ 1 error