public Class accessor {
private int x = 0;
public int getX() {
return x;
}
public String toString() {
return getX() + "";
}
}
在这种情况下,方法toString()是一个访问器方法吗?
Accessor,a.k.a getter,顾名思义用于直接访问类的属性。 toString
是执行某些逻辑的常规公共方法(不仅仅是直接返回某个字段的值)。通常这种方法被覆盖以提供对象内部状态的字符串表示。
toString
不被认为是一个访问者,因为它不访问对象的属性(属性),而是访问整个对象(尽管我确实看到了你的观点)。
访问者是getter(通常命名为getSomething
,或isSomething
为boolean
)和setter(通常命名为setSomething
)。
为了回答你的标题中的问题,一个访问者调用另一个访问器没有任何问题。我相信这种情况经常发生(即使不在你的例子中)。
在一个代表人的类中,你可能会有一个全名的getter调用getter来获取名字和名字:
public String getFullName() {
return getFirstName() + ' ' + getLastName();
}
我认为getFullName
是一个访问者,因为我们可能会将全名视为该人的财产(其名称以get
开头)。