面向对象开发中,属性和状态可以认为是相等的吗?
比如,我们对一个类:
我想要一个属性作为Teacher的状态,
class Teacher {
private status = undefined;
...
public teach(stu) {
this.status = teaching
}
public eat() {
this.status = eating
}
public sleep() {
this.status = sleeping
}
}
请问,是否在面向对象的开发中,
1.状态可以用属性表示对吗?
2.是否任何属性都是代表类实例的一个状态?
没错拿你上面定义status属性就是用来表示Teacher对象当前的状态的(比如,正在教学、正在吃饭、正在睡觉等)。但是任何属性都是代表类实例的一个状态这个不一定,这个问题的答案取决于你怎么定义定义"状态",就像这Teacher对象,运行时的状态是可以变的,但是假如是一些静态信息,比如出生日期,一个圆的半径半径这些静态的数据是不会变的,所以不是所有的属性都用来表示状态。你可以把属性看作是用来描述对象状态的一种工具,但不是所有的属性都用来表示状态。