我看到我们可以使用setter封装实例变量,但是,Constructors似乎做了同样的事情。
String cmd = "am start -n " + getApplicationContext().getPackageName() + "/." + getActivity().getClass().getSimpleName();
...
os.writeBytes("pm install -r " + filename + " && " + cmd);
...
我应该何时使用setter,何时应该使用Constructors来初始化实例变量值?
答案 0 :(得分:3)
当值为 required 时,使用构造函数使对象有意义,或者为了一致性或方便性,需要一次提供多个值时使用构造函数;例如,Rectangle 必须具有长度和宽度。
Rectangle r = new Rectangle(10, 20);
当您有可选值(例如颜色)或在创建对象后可以更改的值时提供setter:
r.setColor(Color.BLUE);
请注意,通常最好尽可能创建不可变的“值对象”,因为这样可以消除几种类型的潜在错误。必须一次初始化值对象,尽管它们通常也有返回新的类似对象的方法:
r = r.withLength(15);
答案 1 :(得分:0)
在创建对象的第一个实例时使用构造函数。 当您更改该对象的属性时,将使用Setter。
答案 2 :(得分:0)
让我把它与现实生活场景联系起来。
我是XXX组织的开发人员,使用YYY品牌电脑。
在Java中,这对应于4个类,类YYY,类XXX,类Developer,类Computer。
我希望这会对你有所帮助。