代码之家  ›  专栏  ›  技术社区  ›  waxwing

调用的字段实例是什么?

oop
  •  2
  • waxwing  · 技术社区  · 14 年前

    这可能是个奇怪的问题,但实际上它让我头痛。

    在面向对象编程中,关键概念有公认的名称。在我们的模型中,我们有 具有 方法 领域 . 现在,进入数据世界:

    • 类的实例称为 对象 .
    • 调用字段的实例…什么?

    一个值?不是这个词 价值 有点宽吗?我也被提供了“属性”,但是属性不是模型的一部分,不是数据吗?

    (这不是纯学术性的,我实际上是在编写这些概念的代码。)

    更新:让我举个例子。我有一个班级“人”和一个字段“年龄”。如果我创建20个人的实例,那么每个这样的实例都被称为对象。到现在为止,一直都还不错。但假设我把“伊戈尔”这个人的年龄设定为20岁。现在20号的存储位置是什么?它是字段、值还是其他什么?

    另一个更新:帕维尔·费尔德曼在 this related question 用不同的语言描述我在上面试图描述的内容:

    “我认为基于类的OOP字段属于类,没有值。因此,当你查看C或Java类中的反射有字段时,字段有类型、名称等,并且可以从对象中获取字段的值。在类中声明字段一次。您有许多具有相同字段但不同值的对象。“

    5 回复  |  直到 14 年前
        1
  •  8
  •   BalusC    14 年前

    无法实例化字段。字段只能包含值。该值可以是基元/本机类型,也可以是对象实例的引用/指针。


    根据您的更新:如果对象表示 真实世界实体 ,然后它经常被称为 财产 . 对于“现实世界实体”,我指的是个人/人的东西,例如 Person , Product , Order , Car 等。如果对象不代表个人/人,例如 List , String , Map ,它更常被称为字段。这正是我迄今为止所观察到的。

        2
  •  4
  •   Adrian Regan    14 年前

    同意俾路支。不过,我认为您要问的是如何调用实例化对象的字段。记住,对象包含状态(数据)和操作(方法),可以将对象字段引用为 状态

        3
  •  2
  •   aioobe    14 年前

    字段是在类的上下文或对象的上下文中讨论的字段天气。

    class C {
        int i;       // i is a field
    }
    

    obj = new C();
    obj.i = 7;       // obj.i is a field
    

    而不是 参数 VS 论点 “实例化”字段和“未实例化”字段在术语上没有区别。

        4
  •  0
  •   Robert    14 年前

    类的实例是一个对象,类可以包含指向其他实例化对象(或空指针)的字段。说一个字段的实例是没有意义的,但是您可能会谈论一个特定字段指向的对象,这对于不同的实例可能是不同的。或者您可以讨论字段的类型(它属于哪个类)

        5
  •  0
  •   SRKX    14 年前

    答案基本上不是我们没有类(或对象)实例字段值的名称吗?

    这就像给类实例的方法返回的值命名…

    我想“状态”是最好的答案,无论如何,正如建议的“平衡-不平衡”那样。