我无法理解教授的讲义,因为我的大脑似乎将对象、属性、变量和类实例视为可以互换的。我非常感谢您在区分这 4 个术语方面提供的帮助。谢谢!
最佳答案
您没有提及有问题的编程语言。
通常,类是声明的模型或模板 某一类物体的外观如何。
你给一个类一个名字,并提到它是否继承 是否来自其他类(class)的成员。
您还可以定义类成员。 这些可以是保存数据(对象状态)的变量 和定义的方法(类定义函数) 对象行为。
当你使用声明的模型实例化一个类时 ,你得到一个对象,它是一个具体的类实例。 这是一个具体的实体,将其视为内存中的新变量, 其数据类型是类(而不是例如 整数或字符串数据类型),其值是其状态 在一个定义的时刻(状态是 其所有数据成员变量值的组合 就在那一刻)。这个对象必须有一个身份, 因为它存在于内存中并且是不同的实体 您可以从其他对象实例化这个或 任何其他类(class)。数据成员变量保存特定的 每个实例的值。这些不在之间共享 实例。
现在成员方法可以在实例之间共享 因为它们没有状态,所以它们对于每个对象都是平等的。 他们被调用时带有一些参数 他们做了一些改变对象状态的 Action ,或者 至少与具体对象紧密相关。 但它们对于每个对象都是通用的。方法通常 知道他们通过特殊的方式作用于什么具体对象 名称如“this”或“self”,引用“itself”。
对象通常在创建时分配给变量, 存储对其身份的引用,允许 剩余的代码来操纵它们。
您使用这些变量来引用具体对象 在类的代码之外,并使用“this”或“self” 从类内部引用它。
您经常访问符合以下条件的对象成员 对象名称。就像“player.run()”或“player.total_score”一样。 也就是说,如果玩家是一个变量,您为其分配了 类 Player 实例。这看起来像player = new Player 或player = Player()。
属性只是数据成员的另一个名称。 有时属性和方法可以是公共(public)的或私有(private)的, 意味着类外部的代码可以使用它们,或者只能使用它们 类代码可以访问。
有时您会看到数据成员或属性被称为 特性。当您访问属性时,您正在访问 一个属性(property)。在 Python 等某些语言中,属性可能意味着 有点不同但密切相关的东西......
现在也取决于语言,事情可以像所描述的那样 (C++、Java)或者您可以将所有内容都视为对象, 包括类定义 (Python)。
您还应该在互联网或其他地方搜索有关 继承、重写、类图和其他类 相关。
这只不过是定义您自己的数据类型的能力 超越语言内置类型。
您可以将变量视为保存值的框(某个地址中的内存容器)的名称。但有时你想要操纵 不是值而是地址本身。这次你说你有 引用(地址)。有时变量只是它们的名称 引用。引用也称为指针。但是您可以使用指针进行数学运算(递增、递减、添加固定值...),而您通常不会使用引用进行数学运算。
关于class - 对象、属性、变量和类实例之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52626378/