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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒋昌宏 黑马帝   /  2012-2-16 19:07  /  2127 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Person{
        private String person_name ;
        private int person_age;
        private Car car;
        private Person child ;
        public Person(String person_name,int person_age){
                this.person_name = person_name ;
                this.person_age = person_age ;
        }
        public void setChild(Person child){
                this.child = child ;
        }
        public Person getChild(){
                return child ;
        }
        public void setCar(Car car){
                this.car = car ;
                }
        public Car getCar(){
                return this.car ;
                }
        public void fun(Person temp){
                temp.person_name = "Jiangchanghong" ;
                temp.person_age = 23 ;
        }
        public String getPerson_name(){
                return this.person_name ;
        }
        public int getPerson_age(){
                return this.person_age ;
        }
}
class Car{
        private String car_name ;
        private String car_color;
        private Person person;
        public Car(String car_name,String car_color){
                this.car_name = car_name ;
                this.car_color = car_color ;
        }
        public void setPerson(Person person){
                this.person = person ;
                }
        public Person getPerson(){
                return this.person ;
                }
        public void fun(Car temp){
                temp.car_name = "Nissan" ;
                temp.car_color = "black" ;
        }
        public String getCar_name(){
                return this.car_name ;
        }
        public String getCar_color(){
                return this.car_color ;
        }       
}
public class function{
   public static void main(String args[]){
           Person person = new Person("123",123);
                           System.out.println(person.getPerson_name()+"、"+person.getPerson_age());
           Car car = new Car("456","456");
                           System.out.println(car.getCar_name()+"、"+car.getCar_color());
                          
                           System.out.println("我是分隔符---------------------------------");                          
                          
           person.fun(person);
                           System.out.println(person.getPerson_name()+"、"+person.getPerson_age());
           car.fun(car);
               System.out.println(car.getCar_name()+"、"+car.getCar_color());
           person.setCar(car);
                           System.out.println(person.getPerson_name()+"拥有"+person.getCar().getCar_name());
           car.setPerson(person);
                      System.out.println(car.getCar_name()+"属于"+car.getPerson().getPerson_name());
          
              System.out.println("我是分隔符---------------------------------");          
          
           Person child = new Person("Wuyilan",23) ;
                           System.out.println(person.getPerson_name()+"、"+person.getPerson_age());
           Car car_child = new Car("Beatles","White") ;
                           System.out.println(car.getCar_name()+"、"+car.getCar_color());
           person.setChild(child);
                           System.out.println(person.getChild().getPerson_name()+":"+person.getChild().getPerson_age());
           child.setCar(car);
                           System.out.println(child.getCar().getCar_name()+":"+child.getCar().getCar_color());
           child.setCar(car_child);
                           System.out.println(child.getCar().getCar_name()+":"+child.getCar().getCar_color());
           car.setPerson(child);
                   //        这里该怎么表示,运行结果报空指针System.out.println(car.getPerson().getChild().getPerson_name()+":"+car.getPerson().getChild().getPerson_age());
           car_child.setPerson(child);
                   //         这里该怎么表示,运行结果报空指针System.out.println(car_child.getPerson().getChild().getPerson_name()+":"+car_child.getPerson().getChild().getPerson_age());
           }
};

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

6 个回复

倒序浏览
为什么不用代码形式显示呢?看的怪头痛的。
回复 使用道具 举报
1、Person和Car的关系是一对一,也就是说一个人只能有一辆车
2、Person中的fun()方法不明白是干什么的
楼主的代码太乱了...

楼主可以在Person类中用Set集合来表示car 这样一个人就可以同时拥有多辆车

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
因为car.setPerson(child);
所以car.getPerson().getChild() 这个为空,你没有定义child的child

下面的也是一样。你都没set child的child,怎么get child的child

// 不要觉得拗口 楼主的代码就是这样。。

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
陈丹阳 发表于 2012-2-16 19:34
因为car.setPerson(child);
所以car.getPerson().getChild() 这个为空,你没有定义child的child

set child的child肯定不行啊,child用person的属性
回复 使用道具 举报
蒋昌宏 发表于 2012-2-16 19:48
set child的child肯定不行啊,child用person的属性

car.setPerson(child);
car.getPerson()得到的是child

得到child  你再来一个.getChild怎么能行 返回的当然是默认的null啦。

回复 使用道具 举报
蒋昌宏 黑马帝 2012-2-16 20:04:07
7#
陈丹阳 发表于 2012-2-16 19:58
car.setPerson(child);
car.getPerson()得到的是child

           car.setPerson(person);
                           System.out.println(car.getPerson().getChild().getPerson_name()+":"+car.getPerson().getChild().getPerson_age());
           car_child.setPerson(person);
                      System.out.println(car_child.getPerson().getChild().getPerson_name()+":"+car_child.getPerson().getChild().getPerson_age());



明白了!你切中要点了,哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马