黑马程序员技术交流社区

标题: java中的has a 问题 [打印本页]

作者: supoman    时间: 2015-5-5 20:33
标题: java中的has a 问题
我是个初学java的学生,刚看到有人说is a和has a的问题,我大体了解了一下,is a就是class A extends B,然后A is B,has a我看是像下面这样写的,但是这个person a定义后怎么使用?
public class person {
String name;

}
public class test2 {

public person a;

}public class test2 {

public person a;

public test2(){

a.name="wjb";

}
public static void main(String[] args) {

test2 b=new test2();
System.out.print(b.a.name);

}
}
我是这么写的为啥还是报错了。。
Exception in thread "main" java.lang.NullPointerException
at test2.<init>(test2.java:9)
at test2.main(test2.java:14)

作者: supoman    时间: 2015-5-6 14:24
顶一下,求大神解答
作者: 猪猪fly侠    时间: 2015-5-6 14:58
test2 b=new test2();//实例化了test2的对象
但是Person的对象还没有实例化,也就是说现在a是指向空的。
出空指针也就不奇怪了!

     class person {
         String name;

         }
         public class test2 {

         public person a;

         public test2(){
     a = new person();
         a.name="wjb";

         }
         public static void main(String[] args) {

         test2 b=new test2();
         
         System.out.print(b.a.name);

         }
作者: DonaldLove    时间: 2015-5-6 16:33
“is -a”关系使用继承,“has-a”关系使用组合。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2