Quelques éclaircissements
Bonjour,
Le type de variables permet surtout de définir la portée de celle-ci. Ce n'est pas vraiement une question de propreté. A la rigueur, une éconoie de ressources sans plus.
Bref, il existe à ma connaissance trois types principaux :
public, private et protected, les deux premières pouvant être précédée du mot clé static éventuellement. Il y a aussi le mot clé final qui peut précéder tous les types et permet de définir une variable comme une constante fixe possèdant une valeur connue à l'avance et qui ne change jamais.
Lorsque vous définissez une variable dans une classe, cette dernière existera à l'interieur des accolades '{}' ouvrante et fermante qui l'encadre.
Dans l'exemple suivant, la variable 'valeurAAfficher' n'existe que dans la méthode test(String valeur):
Code:
1 2 3 4 5
|
public void test(String valeur) {
String valeurAAfficher = valeur;
System.out.println(valeurAAfficher);
} |
Le reste du code de la classe ne peut manipuler valeurAAfichier malgré que la méthode soit public.
Maintenant, modifions quelque peut cette méthode :
Code:
1 2 3 4 5 6
|
private String valeurAAfficher;
public void test(String valeur) {
valeurAAfichier = valeur;
System.out.println(valeurAAficher);
} |
Vous l'aviez déja compris, dans ce cas, tout le reste du code de la classe a accès à valeurAAficher, malgré que cette dernière soit private.
Cela démontre bien que public ou private n'a pas la moindre incidence au sein de la classe, seul l'endroit où est définit la variable n'a d'incidence sur son accessibilité. private et public servent à définir la portée par rapport à la classe qui a instancié notre classe.
C'est pourquoi, pour des raisons de lisibilité, en générale on définit les variables de classe (Celles qui sont disponible pour toute la classe) entre la ligne de définission de la classe, et le premier constructeur.
Le mot clé static, lui est un peu particulier, il signifie que la variable est garantie pour contenir une valeur que la classe ait été instanciée/initialisée ou pas. Concrètement, interroger une telle variable revient à dire aller chercher son contenu directement dans le fichier de classe via une opération du système de fichier local.
Pour finir, le seul interret de définir des variables de classes, c'est pour éviter la multiplication inutile de déclaration de variables (qui consomment de la ressource mémoire) qui ont le même rôle, et au moment de leur utilisation contiennent la même chose. Dans ce cas, il vaut mieux globaliser la variable plutot que d'en déclarer une dans chaque méthode qui l'utilise.
J'espère avoir été assez clair.