java 中的对象和引用 - 解释答案
Objects and references in java - explain the answer
我很困惑,因为我是新手java,下面这段代码创建了多少个对象和引用?
public class Test {
Test obj1,obj2,obj3;
public static void main(String ar[]) {
new Test();
obj2=obj3=new Test();
}
}
请解释答案:
2 objects, 3 references
该代码片段创建了两个 Test
类型的对象,每个地方都写了一个 new Test();
。
这里还有3个引用(变量)1:obj1,obj2,obj3
.
最后,你有:
- 1 个对象无法访问
obj2,obj3
、 引用了一个对象
obj1
指null
.
另请注意,您似乎忘记将变量声明为 static
- 否则代码将无法编译。 ("Cannot make static reference to a non static field") - 因为 main()
是静态的 - 它只能访问 class 变量 (附加了 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
个对象。
我很困惑,因为我是新手java,下面这段代码创建了多少个对象和引用?
public class Test {
Test obj1,obj2,obj3;
public static void main(String ar[]) {
new Test();
obj2=obj3=new Test();
}
}
请解释答案:
2 objects, 3 references
该代码片段创建了两个 Test
类型的对象,每个地方都写了一个 new Test();
。
这里还有3个引用(变量)1:obj1,obj2,obj3
.
最后,你有:
- 1 个对象无法访问
obj2,obj3
、 引用了一个对象
obj1
指null
.
另请注意,您似乎忘记将变量声明为 static
- 否则代码将无法编译。 ("Cannot make static reference to a non static field") - 因为 main()
是静态的 - 它只能访问 class 变量 (附加了 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
个对象。