其实这不是只存在于java中的问题,所有oop语言都有这个疑惑,对初学者来说容易造成混乱。我用我熟知的java代码来举个例子
class Something {
private int someNumber;
public void testMethod() {
// do this
setSomeNumber(getSomeNumber() + 1);
// or do this
someNumber = someNumber + 1;
}
public void setSomeNumber(int someNumber) {
this.someNumber = someNumber;
}
public int getSomeNumber() {
return someNumber;
}
}
在上面的testMethod
代码中看到了我们常用的两种写法,对我这种菜鸟来说,影响你使用某种写法的原因可能只是你偶尔的心血来潮。
如果在外部使用这个对象,毫无疑问我们会使用setter和getter方法,但是在它自身内部呢?