java中的对象和引用 - 解释答案

时间:2015-04-26 12:15:18

标签: java reference

我很困惑,因为我是java的新手,在下面这段代码中创建了多少个对象和引用?

public class Test {

Test obj1,obj2,obj3;

    public static void main(String ar[]) {
        new Test();
        obj2=obj3=new Test();
    }
}

请解释答案:

  

2个对象,3个参考

1 个答案:

答案 0 :(得分:3)

代码段创建两个Test类型的对象,其中一个对象new Test();被写入。

此处还有3个引用(变量) 1 obj1,obj2,obj3

最后,你有:

  • 1个无法访问的对象
  • obj2,obj3引用的一个对象,
  • obj1指的是null

另请注意,您似乎忘记将变量声明为static - 否则代码将无法编译。 (“不能对非静态字段进行静态引用”) - 因为main()是静态的 - 它只能访问类变量(它们附有static修饰符)

public class Test {

    static Test obj1,obj2,obj3; //3 references/variables
  //  ^
  //added static keyword


    public static void main(String ar[]) {  
        new Test(); //1 object
        obj2=obj3=new Test(); //second object created
    //  ^obj2,obj3 both are referring the 2nd object now
    }
}

(1)到Test个对象。