[英]Still trying to understand object oriented programming in Java
假设有一个名为Hello的类,我如何将名为var1和var2的变量声明为对Hello类中对象的引用? 我以为那只是Hello var1,var2;
同样,要使用默认构造函数仅构造Hello类的对象的实例,也可以是Hello hello = new Hello();。
最后,我的最后一个问题是,如果要使用默认构造函数实例化Hello类的对象,并将该对象分配给名为var1的变量,则它将只是Hello var1 = new Hellow();。 如何将对名为var1的对象的引用分配给名为var2的变量
而且我知道有一个术语来描述变量var1和var2的当前状态,但是我想不到
只是给出测试示例来说明事情
public class Hello {
Hello var1, var2;
public static void main(String[] args){
Hello h1 = new Hello();
h1.var1 = h1;
System.out.println("h1.var1 ---- "+ h1.var1);
Hello h2 = new Hello();
h1.var2 = h2;
System.out.println("h1.var2 ---- "+ h1.var2);
h1.var2 = h1.var1;
System.out.println("h1.var1 ---- "+ h1.var1);
System.out.println("h1.var2 ---- "+ h1.var2);
}
}
Output :-
h1.var1 ---- Hello@19e0bfd
h1.var2 ---- Hello@139a55
h1.var1 ---- Hello@19e0bfd
h1.var2 ---- Hello@19e0bfd
假设有一个名为Hello的类,我如何将名为var1和var2的变量声明为对Hello类中对象的引用? 我以为那只是Hello var1,var2;
您可以看到有两个声明为同一类的变量,它们可以引用Hello
类实例。
同样,要使用默认构造函数仅构造Hello类的对象的实例,也可以是Hello hello = new Hello();。
是的,每个类都有默认的构造函数,因此您可以像这样初始化类。
最后,我的最后一个问题是,如果要使用默认构造函数实例化Hello类的对象,并将该对象分配给名为var1的变量,则它将只是Hello var1 = new Hellow();。 如何将对名为var1的对象的引用分配给名为var2的变量
如您所见,在h1.var2 = h1.var1
语句之后, var2
的哈希码与var1
相同。 这说明var2
先前的引用已被var1
引用所替代。 因此,这里不复制对象,而是复制对对象的引用。 检查var1
和var2
的相同hashcode
。
而已!。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.