Chaîne privée ou public static String?

Lors de mon stage un de mes collègues m'a donné un indice. Je veux savoir si c'est une bonne pratique.

Ce que je faisais était de la création de classes qui sont utilisés uniquement pour les valeurs qu'elles contiennent et n'ont pas toutes les fonctions que de réellement faire quelque chose (en dehors d'avoir des getters, setters et un constructeur). J'ai déclaré mes variables comme ceci:

public class ObjectIUse{
  Private String name;

  public ObjectIUse(String name){
    this.name = name;
  }

  public String getName(){
    return name;
  }
}

Donc je ne suis pas à l'aide d'un poseur parce qu'il doit toujours rester le même. Mon collègue a dit que je peux aussi le faire de cette façon:

public class ObjectIUse{
  public final String name;

  public ObjectIUse(String name){
    this.name = name;
  }
}

Parce que, maintenant, nous n'avons pas besoin d'avoir des accesseurs ou setters parce que c'est public, mais il peut aussi ne jamais être modifié, car il est définitive.

Qui serait le mieux? Ou serait-il peut-être préférable de toujours faire en privé, mais aussi final? Je veux dire toutes les options de travail, évidemment. Je veux juste savoir ce qui est mieux et pourquoi.

Le rendre privé. De la rendre définitive.
Ce Sayem a dit. Membre du Public les variables sont "considérées comme nuisibles." Lorsque votre objet ne change pas (on dit qu'il est "immuable"), déclarer la variable membre final. Cela vous oblige à mettre dans le constructeur et l'empêche de changer, même si quelqu'un est le reflet de votre instance de classe.
C'était aussi ce que je pensait être la meilleure option. Quel est votre raisonnement?
Comme Gandalf dit à Frodon: "Garder cela secret, de les garder en sécurité"
finale privée BLABLABLA;

OriginalL'auteur WereWolfBoy | 2013-03-28