我很困惑,因为我是java的新手,在下面这段代码中创建了多少个对象和引用?
public class Test {
Test obj1,obj2,obj3;
public static void main(String ar[]) {
new Test();
obj2=obj3=new Test();
}
}
请解释答案:
2个对象,3个参考
答案 0 :(得分:3)
代码段创建两个Test
类型的对象,其中一个对象new Test();
被写入。
此处还有3个引用(变量) 1 :obj1,obj2,obj3
。
最后,你有:
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
个对象。