我正在阅读Oracle对OOP概念的介绍,并且遇到了以下描述:
实际对象具有两个特征:它们都具有状态和行为。狗具有状态(名称,颜色,品种,饥饿)和行为(吠叫,抓捕,摇尾巴)。软件对象在概念上与现实世界中的对象相似:它们也由状态和相关行为组成。
我的问题是,当描述状态时,它的混合属性也存在。例如,狗的名字和颜色是它的属性,而饿或渴则是它的状态。
因此,我认为将对象的特征分为三个部分更为准确:属性,状态和行为。
当然,将其翻译成编程语言时,我可以看到三重分区变成了两重分区,因为属性和状态都将存储在字段/变量中,而行为将存储在方法/函数中。
但是从概念上讲,将三件事分开是更有意义的。
这是另一个示例:考虑一盏灯。在我看来,说灯泡的大小以及它是否已打开都是状态。灯的大小是属性,而不是状态,而打开或关闭是状态。
还是我错过了什么?