Bonjour,
Voici un petit exemple (les questions viennent après):
Dans les deux méthodes ci-dessus, la variable d'instance 'strB' de 'monObjet' est sur la fin initialisée, elle ne contient donc plus de valeurs, sa longueur est nulle.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 class Test{ // variable d'instance private StringBuffer strB = new StringBuffer(); // méthode d'instance 'abc' public void abc(){ strB.append("a"); strB.append("b"); strB.append("c"); } // méthode d'instance 'getteur' public StringBuffer getStrB(){ return strb; } // méthode d'instance 'initialisation' public initStrB(){ strB.delete( 0,strB.length() ) } } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class Main{ public static void main(String[] args){ Test monObjet = new Test(); //... une suite d'instructions... par xemple monObjet.abc(); // initialisation de monObjet.strB (Méthode 1) monObjet.getStrB().delete( 0,monObjet.getStrB().length() ) // ou bien (Méthode 2) monObjet.initStrB(); } }
Questions:
1) est-ce vrai ?
la méthode 2 est mieux car on a pas d'accès direct à la variable, l'initialisation se déroule au sein de la méthode 'initStrB()' de l'objet 'monObjet'.
2) est-ce vrai ?
dans la méthode 1, vu que la référence de l'objet 'monObjet.strB' de type StringBuffer est "divulguée", définir un 'guetteur' n'a aucun intérêt ? (autant accéder directement à la variable d'instance en la déclarant public)
Merci à vous.
Partager