A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© supoman 中级黑马   /  2015-5-5 20:33  /  400 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是个初学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)

3 个回复

正序浏览
“is -a”关系使用继承,“has-a”关系使用组合。
回复 使用道具 举报
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);

         }
回复 使用道具 举报
顶一下,求大神解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马