Bon, je suis bien content que vous confirmiez ce qui commencé à troter dans ma tête, à savoir:
Bon sang mais pourquoi tous les paramètres ne sont ils pas naturellement FINAL !?? (en C++ toutes les références sont lié une seule fois, comme si elles étaient 'final' au sens JAVA).

Mais deuxième problème.
Si final ne permet pas du tout de protéger son objet, mais simplement de protéger la référence, existe t'il un équivalent au powerfull mot clef C++ "const" en JAVA ?
C'est à dire un mot clef spécifiant tout simplement que le paramètre est une ENTREE, et qui garanti donc que celui-ci (l'objet) ne sera pas modifié au sein de la méthode.
Bon sang, il me semble que c'est hachement important comme concept de pouvoir spécifier dans le prototype de ces méthodes que tel paramètre est une entrée, et tel autre non.
Dites moi que c'est prévu en JAVA ?

PS: après queques recherches je n'ai rien trouvé, si ce n'est une ruse de sioux qui consiste à définir 2 classes au lieu d'une, à l'image du couple "String" qui passé en paramètre ne permet pas de modifier l'objet en sortie. et "StringBuffer" qui lui justement le permet.

je m'explique:

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
 
void ChangeMaChaine(String string, StringBuffer stringbuf)
{
  string = "CaMarchePas";
  stringbuf.setlength(0);
  stringbuf.append("CaMarche");
}
 
// quelque part dans un main...
 
String s = new String("Entree");
StringBuffer sb = new StringBuffer("EntreeSortie");
 
ChangeMaChaine(s, sb);
System.format("String: %s\nStringBuffer: %s", s, sb);
 
/* Affiche :
String: Entree
StringBuffer: CaMarche
*/