解释每个语句的输出结果,并解释为什么最后一个输出语句失败。 class Class1{ int a,b; } class Class2{ float c,d; } class Class3{ String st; Class1 c1; Class2 c2; } public class PackTest { public static void main(String[] args) { Class1 c1= new Class1(); Class2 c2= new Class2(); Class3 c3= new Class3(); System.out.println(c1.a+" "+c1.b); System.out.println(c2.c+" "+c2.d); System.out.println(c3.st); System.out.println(c3.c1); System.out.println(c3.c2); System.out.println(c3.c2.c);//为什么错误 } }
时间: 2024-01-06 16:04:56 浏览: 84
01输出两个int数中的最大值.docx
输出结果:
0 0
0.0 0.0
null
null
null
编译器会报错,因为c3.c2为null,所以不能再访问c2的成员变量c。
解释:
1. 第一个输出语句输出 0 0 是因为类 Class1 的两个成员变量 a 和 b 没有被初始化,默认值为 0。
2. 第二个输出语句输出 0.0 0.0 是因为类 Class2 的两个成员变量 c 和 d 没有被初始化,默认值为 0.0。
3. 第三个输出语句输出 null 是因为类 Class3 的成员变量 st 没有被初始化,默认值为 null。
4. 第四个、第五个输出语句输出 null 是因为类 Class3 的成员变量 c1 和 c2 没有被初始化,默认值为 null。
5. 第六个输出语句因为c3.c2为null,所以不能再访问c2的成员变量c。
阅读全文