Java 对象、引用和类。需要帮助理解一些代码吗
我有点理解:Java 对象、引用和类。需要帮助理解一些代码吗,java,class,object,reference,Java,Class,Object,Reference,我有点理解: 类是一种可以从中创建对象的蓝图 对象是创建的实际实例或对象 引用就像指向所述对象的地址 当下面的代码被调用两次时,会发生什么 Car batmobile = new Car(); 将创建两个对象吗?如果是,第一个对象会发生什么情况? 具体来说,在类、对象和引用方面会发生什么 第二部分: 这是一个无限循环吗?自从构造器生成一个对象,然后再次调用构造器后,对象会一直被创建吗?类、对象、引用关系在这里是如何工作的 public class Alphabet { Alphabet
- 类是一种可以从中创建对象的蓝图
- 对象是创建的实际实例或对象
- 引用就像指向所述对象的地址
Car batmobile = new Car();
将创建两个对象吗?如果是,第一个对象会发生什么情况?
具体来说,在类、对象和引用方面会发生什么
第二部分:
这是一个无限循环吗?自从构造器生成一个对象,然后再次调用构造器后,对象会一直被创建吗?类、对象、引用关系在这里是如何工作的
public class Alphabet {
Alphabet abc;
public Alphabet() {
abc = new Alphabet();
}
}
我使用cookie隐喻来解释对象和类 把计算机的内存想象成一大块饼干面团。(很好吃,不是吗?) 你们班是一个饼干切割工。只要你有面团(记忆),它就会产生特定大小和形状的饼干。对象是用饼干切割器切割的饼干 1) 蝙蝠车是对汽车对象的引用。它只能指向汽车或汽车的子类。它在创建时没有附加对象实例(面团)。当调用new Car()时,您会戳出一个对象实例,并将其指定给一个名为batmobile的引用。只有一个参考
2) 不要这样做。我不确定最终可能会出现堆栈溢出,但这并不能得到您想要的结果。您可能需要查找单例模式。这可能会对您有所帮助。我使用cookie隐喻来解释对象和类 把计算机的内存想象成一大块饼干面团。(很好吃,不是吗?) 你们班是一个饼干切割工。只要你有面团(记忆),它就会产生特定大小和形状的饼干。对象是用饼干切割器切割的饼干 1) 蝙蝠车是对汽车对象的引用。它只能指向汽车或汽车的子类。它在创建时没有附加对象实例(面团)。当调用new Car()时,您会戳出一个对象实例,并将其指定给一个名为batmobile的引用。只有一个参考
2) 不要这样做。我不确定最终可能会出现堆栈溢出,但这并不能得到您想要的结果。您可能需要查找单例模式。这可能会对您有所帮助。我使用cookie隐喻来解释对象和类 把计算机的内存想象成一大块饼干面团。(很好吃,不是吗?) 你们班是一个饼干切割工。只要你有面团(记忆),它就会产生特定大小和形状的饼干。对象是用饼干切割器切割的饼干 1) 蝙蝠车是对汽车对象的引用。它只能指向汽车或汽车的子类。它在创建时没有附加对象实例(面团)。当调用new Car()时,您会戳出一个对象实例,并将其指定给一个名为batmobile的引用。只有一个参考
2) 不要这样做。我不确定最终可能会出现堆栈溢出,但这并不能得到您想要的结果。您可能需要查找单例模式。这可能会对您有所帮助。我使用cookie隐喻来解释对象和类 把计算机的内存想象成一大块饼干面团。(很好吃,不是吗?) 你们班是一个饼干切割工。只要你有面团(记忆),它就会产生特定大小和形状的饼干。对象是用饼干切割器切割的饼干 1) 蝙蝠车是对汽车对象的引用。它只能指向汽车或汽车的子类。它在创建时没有附加对象实例(面团)。当调用new Car()时,您会戳出一个对象实例,并将其指定给一个名为batmobile的引用。只有一个参考 2) 不要这样做。我不确定最终可能会出现堆栈溢出,但这并不能得到您想要的结果。您可能需要查找单例模式。这可能对你有帮助 现在我需要帮助理解当这个代码被调用两次时到底会发生什么 例如:
carbatmobile=新车()代码>
将创建两个对象吗
每次执行该行时都会创建一个Car
对象,因此如果执行两次,则会创建两个对象
如果是,第一个对象会发生什么情况
如果没有其他东西引用它,它就有资格被JVM进行垃圾收集。何时以及是否发生这种情况取决于JVM垃圾收集器中的许多因素
有人能详细解释一下类、对象和引用方面发生了什么吗
…声明类型为Car
的变量。因为它是一种对象类型,所以变量最终将保存一个对象引用(或null
,这意味着它不保存对任何对象的引用)。实际对象独立于任何可能引用它的变量而存在(一个对象可能有多个引用)。对象引用就像一个内存地址,表示对象在内存中的位置。(它不是一个内存地址,但很像一个。)
…创建一个新的Car
对象,并调用Car
构造函数对其进行初始化。因此:
Car batmobile = new Car();
…声明一个变量,创建一个对象,调用Car
构造函数,并将对该对象的引用分配给batmobile
这是一个无限循环吗
可能是这样,但最终会耗尽堆栈空间,因此这是一个堆栈溢出错误。该行调用字母表
构造函数,它调用字母表
构造函数,它调用字母表
构造函数。。。你明白了
现在我需要帮助理解当这个代码被调用两次时到底会发生什么
例如:carbatmobile=新车()代码>
两个物体会得到crea吗
new Car();
Car batmobile = new Car();
var batmobile = new Car();
Public class Alphabet{
Alphabet abc;
Public Alphabet(){
abc = new Alphabet();
}
}
while (true) {
Car batmobile = new Car();
}
Car batmobile = new Car();
SomeClass x;
SomeClass x = new SomeClass();
Public class Alphabet{
Alphabet abc;
Public Alphabet(){
abc = new Alphabet();
}
}
public static void main(String[] args){
new Alphabet();
}