这可能是一个奇怪的问题,但它确实让我有些头疼。
在面向对象编程中,关键概念有公认的名称。在我们的模型中,我们有带有方法 和字段 的类。现在,进入数据世界:
- 类的实例称为对象。
- 一个字段的实例叫做……什么?
一个值? 值(value) 这个词是不是有点宽泛?我也被提供了“属性”,但属性不是模型的一部分而不是数据的一部分吗?
(这不是纯粹的学术,我实际上是在编码这些概念。)
更新:让我举个例子。我有一个带有字段“年龄”的“人”类。如果我创建 20 个 Person 实例,每个这样的实例都称为一个对象。到目前为止,一切都很好。但是假设我以“Igor”这个人为例,并将他的年龄设置为 20。现在包含数字 20 的存储位置是什么?它是字段、值还是其他?
另一项更新:Pavel Feldman 在 this related question 中的引述用不同的词描述我在上面试图描述的内容:
"I'd say that in class-based OOP field belongs to class and does not have a value. It is so when you look at reflection in c# or java - class has fields, field has type, name, etc. And you can get value of the field from object. You declare field once, in class. You have many objects with same fields but different values."
最佳答案
字段不能被实例化。一个字段只能包含一个值。该值可以是原始类型/ native 类型,也可以是对象实例的引用/指针。
根据您的更新:如果对象代表一个真实世界的实体,那么它通常被称为属性。对于“现实世界实体”,我指的是个人/人类,例如Person
、Product
、Order
、Car
等。如果对象不代表个人/人类,例如List
、String
、Map
,那么更多的时候叫字段。这正是我到目前为止所观察到的。
关于oop - 字段的实例叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052988/