【发布时间】:2013-03-18 21:53:43
【问题描述】:
在我实习的时候,我的一位同事给了我一个提示。我想知道这是否是好的做法。
我所做的是创建仅用于它们包含的值的类,并且没有任何实际执行某些操作的函数(除了具有 getter、setter 和构造函数)。我这样声明我的变量:
public class ObjectIUse{
Private String name;
public ObjectIUse(String name){
this.name = name;
}
public String getName(){
return name;
}
}
所以我没有使用 setter,因为它应该始终保持不变。同事说我也可以这样:
public class ObjectIUse{
public final String name;
public ObjectIUse(String name){
this.name = name;
}
}
因为现在我们不需要任何 getter 或 setter,因为它是公开的,但是它也永远不能更改,因为它是最终的。
哪个更好?还是将其设为私有但也是最终的可能会更好?我的意思是所有选项都有效,显然。我只是想知道哪个更好以及为什么。
【问题讨论】:
-
将其设为私有。最终确定。
-
Sayem 所说的。公共成员变量“被认为是有害的”。当你的对象没有改变时(我们说它是“不可变的”),声明成员变量
final。这会强制你在构造函数中设置它并防止它改变——即使有人反映了你的类实例。 -
这也是我认为更好的选择。你的理由是什么?
-
正如甘道夫对佛罗多所说:“保密,保证安全”
-
私人最终 BLABLABLA;
标签: java android private public final