在面向对象的编程中,无生命的物体应该有方法/行为吗?



我是编程的新用户,已经开始学习面向对象编程。OOP似乎用于对现实生活中的对象和交互进行建模。 我的问题是,无生命的物体应该有行为吗?

例如,我应该有类似的东西

class Room:
clean()
or
class User:
clean_room(Room)

好问题!你应该两者都有。

房间绝对可以有一个clean((方法,即使它是无生命的。事实上,这实际上是必要的。如果将房间传递给用户,他们仍必须在 Room 类中调用某个公共方法来执行清理。clean(( 将是一个合适的方法。事实上,公共方法的存在是为了让它们可以从类的外部被其他类使用。

为了能够告诉用户他/她应该打扫房间,您还需要 User 类中的 clean_room(( 方法。然后,此方法将在 Room 对象上调用 clean(( 方法。