private String或public static String?

Wer*_*Boy 9 java android final private public

在我的实习期间,我的一位同事给了我一个暗示.我想知道这是不是很好的做法.

我正在做的是创建仅用于它们包含的值的类,并且没有任何实际执行某些操作的函数(除了具有getter,setter和构造函数).我声明我的变量是这样的:

public class ObjectIUse{
  Private String name;

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

  public String getName(){
    return name;
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我没有使用setter因为它应该始终保持不变.我的同事说我也可以这样做:

public class ObjectIUse{
  public final String name;

  public ObjectIUse(String name){
    this.name = name;
  }
}
Run Code Online (Sandbox Code Playgroud)

因为现在我们不需要任何getter或setter因为它是公共的,但它也永远不会被更改,因为它是最终的.

哪个更好?或者它可能更适合仍然是私有但最终?我的意思是所有选项都很有效.我只是想知道哪个更好,为什么.

MD *_*med 7

将变量设为私有,因为通过这样做,您将在类中封装变量.这有很多好处,信息隐藏是其中之一,如果你去上面的链接,你将学习.

如果你希望它在创建后永远不会改变,那么也要做到最后.

  • 我会说这个人是黑客,而不是开发人员,可能并不了解他的决定的所有后果.而且,看到他的建议后,我会对他/她将来告诉我的任何事情感到厌倦.但是,请记住,作为一名实习生,他们会对待你,就像你不知道你在说什么,所以不要试图争论这一点. (2认同)