Bonjour,

je suis actuellement un tuto sur les classes et les héritages.

On y explique que pour protéger une variable d'une erreur de programmation, celle-ci est déclarée private.
Pour qu'une classe héritée (je ne l'ai pas encore créée) puisse néanmoins avoir accès à la variable sans, pour autant, lever la protection au niveau des utilisateurs, il suffit donc de remplacer private par le mot clé protected.

voici donc mon programme principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
package projet3;
 
public class Principal {
 
	public static void main(String[] args) 
	{
		Ville v0=new Ville("Paris",100,"France");
		System.out.println(v0.cap);
		v0.cap="Modif";
		System.out.println(v0.cap);
	}
}
et voici la classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package projet3;
 
public class Ville {
	protected String cap, pays;
	protected int hab;
 
	public Ville()
	{
		cap="Default Capitale";
		hab=0;
		pays="Default Pays";
	}
	public Ville(String aa, int bb, String cc)
	{
		cap=aa;
		hab=bb;
		pays=cc;
	}
 
}
Si j'ai bien compris, avec protected, je ne suis donc pas en mesure de modifier les valeurs de v0 à partir de mon programme Principal.
Pourtant, je n'ai aucun mal à changer la valeur de la variable cap, sans faire appel à un mutateur et voici le résultat lorsque je lance programme.

Nom : Screen Shot 2014-11-23 at 12.45.49.png
Affichages : 216
Taille : 246,5 Ko

Est ce moi qui n'ai pas compris le principe d'utilisation de protected ?

merci d'avance pour vos explications.