Topic: 有兴趣的都来解决这样一个问题!谢谢 |
Print this page |
1.有兴趣的都来解决这样一个问题!谢谢 | Copy to clipboard |
Posted by: boyman Posted on: 2005-03-04 07:11 有这样一个程序: class A{ A() { System.out.println("A"); } public void print() { System.out.println("Test A"); } } class B{ B() { System.out.println("B"); } public void print() { System.out.println("Test B"); } } class C{ C() { System.out.println("C"); } public void print() { System.out.println("Test C"); } } class D{ public A a; public B b; public C c; D() { System.out.println("D"); A a=new A(); B b=new B(); C c=new C(); } } public class E extends D{ E() { System.out.println("E"); } public static void main(String[] args) { E e=new E(); e.a.print(); e.b.print(); e.c.print(); } } 输出结果是: D A B C E Exception in thread "main" java.lang.NullPointerException at E.main(E.java:54) 请高手指点。 |
2.Re:有兴趣的都来解决这样一个问题!谢谢 [Re: boyman] | Copy to clipboard |
Posted by: 臧圩人 Posted on: 2005-03-04 11:33 你没有对D里的这三个变量初始化: public A a; public B b; public C c; 在D的构造器里,你写的下面三句话: A a=new A(); B b=new B(); C c=new C(); 是另外创建了三个新的局部变量并初始化它们。而并不是初始化D类的a,b,c三个变量。 改成下面的即可: a=new A(); b=new B(); c=new C(); |
3.Re:有兴趣的都来解决这样一个问题!谢谢 [Re: boyman] | Copy to clipboard |
Posted by: boyman Posted on: 2005-03-05 06:12 高手呀。。。。。。。。 可以了,谢谢高手指点。。。。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |