面向对象开发中,属性和状态可以认为是相等的吗?

面向对象开发中,属性和状态可以认为是相等的吗?

比如,我们对一个类:
我想要一个属性作为Teacher的状态,

class Teacher {
  private status = undefined;
  ...
  public teach(stu) {
    this.status = teaching
  }
  
  public eat() {
    this.status = eating
  }
  
  public sleep() {
    this.status = sleeping
  }
}

请问,是否在面向对象的开发中,
1.状态可以用属性表示对吗?
2.是否任何属性都是代表类实例的一个状态?

阅读 1.5k
1 个回答

没错拿你上面定义status属性就是用来表示Teacher对象当前的状态的(比如,正在教学、正在吃饭、正在睡觉等)。但是任何属性都是代表类实例的一个状态这个不一定,这个问题的答案取决于你怎么定义定义"状态",就像这Teacher对象,运行时的状态是可以变的,但是假如是一些静态信息,比如出生日期,一个圆的半径半径这些静态的数据是不会变的,所以不是所有的属性都用来表示状态。你可以把属性看作是用来描述对象状态的一种工具,但不是所有的属性都用来表示状态。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏