java - 什么是不是实例的对象,反之亦然?
问题描述
我试图了解对象和实例之间的区别,在某些论坛中它被提及为相同,而在其他论坛中被提及为不同。
Q.1如果我们用一个类的不同属性实例化 4 个不同的对象,比如说
Class A(..)
A a1 = new A(..1..)
A a2 = new A(..2..)
A a3 = new A(..3..)
然后是 A 的 a1、a2、a3对象或 A 的实例,或者我们可以同时说两者。是否存在仅 A 的对象或仅 A 的实例的情况?如果不是,是否有任何具体原因使用两个不同的术语?
Q2。
Class A(..)
A a1 = new A(..1..)
A a2 = a1
这里因为 a2 引用了 a1,所以现在 a1 和 a2 之间是否存在内存差异。
假设 A 类本身拥有 24 字节的内存
所以如果我们在第二行创建实例/对象(需要确认)。我们将为 a1 提供另外 24 字节的内存和额外的参考内存,对吧?引用的内存大小是多少。
我们还有另一个引用 a2,现在该 a2 的内存大小是多少,也是 24 字节 + 它自己的引用大小还是只是引用大小?
我用 C# 语法编写过。
解决方案
Q1 对象被定义为包含许多值的变量。
让我给你一个抽象的例子。假设有 10 位商人老师教一些学生成为商人。他们现在都是商人,学生或老师。但并非所有人都被教导。老师们正在把他们的知识传授给学生们。所以每个学生都是他们尊敬的老师的一个例子。
所以基本上,a1、a2 和 a3 是 A 的实例。因为 A 将他的值传递给了它们。尽管它们都是上面提到的定义的对象。A 是父母。
此外,您编写的语法不正确。
您需要使用 var、let 或 const。你需要使用这些类型的括号:
Class A {
constructor (){}
}
var a1 = new A{..1..}
var a2 = new A{..2..}
var a3 = new A{..3..}
推荐阅读
- sed - 删除破折号 (-) 和第一个点 (.) 之间的字符串
- angular - 通过按钮更改离子警报 CssClass
- c# - 使用 C# 从 Json 中提取完整数据
- google-identity - Google YOLO 停止工作:不允许客户端源使用此 API
- javascript - textContent 和 innerHTML 不会改变 DOM
- c# - .Net Blazor 优于 Angular、React 或其他 JavaScript 框架
- css - CSS:为什么绝对div内的图像底部有一个小间隙?
- excel - “应用程序”对象是否有更多方法?
- sql - 使用 SQL 进行复杂分组
- angular - Angular 2:在表单标签内输入时搜索管道不起作用