为什么OO将代码和数据结合在一起?

时间:2016-04-29 08:04:02

标签: oop object

我对编程几乎是新手,我来到这个问题: 为什么对象携带代码和数据?是不是打包数据不够?

例如: 而不是拥有5个员工对象,每个对象都有一个 getDataOfBirth()方法(消耗更多内存),在全局空间中只有一个方法,并且只有5个对象只有属性(较小的对象)。

我出错了吗?我的问题是否被认为是一般的,可能会出现在每个新手的心中?

1 个答案:

答案 0 :(得分:2)

它的语言方面:

这是OOP怀疑论者长期以来一直在谈论的一个想法,但更多的是我会说的偏好问题。如果您不熟悉编程并且已经在考虑这些事情,那么函数式编程对您来说很有意义。

它的记忆方面:

函数通常不存储在对象中,因此具有许多函数的OO对象通常不会携带这些函数。然而,这是一个实现细节,但大多数OOP语言都应该被认为是这样。

特别是对于像C ++这样的本地编译语言,代码和数据将完全分离到不同的内存区域,并不会真正混合。这也是一个实现细节,但据我所知,所有主流操作系统都将使用与数据分离的代码来分配内存。类的功能将在一个区域中分配,而对象的数据在另一个区域中,并且通常同一类的所有对象将使用相同的功能。