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