class - 对象、属性、变量和类实例之间的区别

标签 class object variables attributes instance

我无法理解教授的讲义,因为我的大脑似乎将对象、属性、变量和类实例视为可以互换的。我非常感谢您在区分这 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/

相关文章:

c# - 声明具有属性的类并同时填充这些属性的最佳方法是什么

c++ - 在我的类 C++ 中创建一个对象

javascript - 比较 2 个数组并获取值以查看数组 1 是否大于数组 2

mysql - 将列添加到已将 varchar 转换为日期格式的表

c++ - 来自类方法的 Cout 不执行任何操作

javascript 不同的 OOP 方法标准

c# - 从 C# 返回的数据集中填充对象

javascript - XMLHttpRequest 对象

java - 调用泛型类型

python - 如何在函数中使用局部变量并返回它?