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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 yueyouqiang 于 2014-7-19 17:51 编辑
  1. class Person{                        // 定义Person类
  2.         private String name ;        // 姓名
  3.         private int age ;                // 年龄
  4.         private Book book ;                // 一个人有一本书
  5.         public Person(String name,int age){
  6.                 this.setName(name) ;
  7.                 this.setAge(age) ;
  8.         }
  9.         public void setName(String n){
  10.                 name = n ;
  11.         }
  12.         public void setAge(int a){
  13.                 age = a ;
  14.         }
  15.         public String getName(){
  16.                 return name ;
  17.         }
  18.         public int getAge(){
  19.                 return age ;
  20.         }
  21.         public void setBook(Book b){
  22.                 book = b ;
  23.         }
  24.         public Book getBook(){
  25.                 return book ;
  26.         }
  27. };
  28. class Book{                                // 定义Book类
  29.         private String title ;        // 标题
  30.         private float price ;        // 价格
  31.         private Person person ;        // 一本书属于一个人
  32.         public Book(String title,float price){
  33.                 this.setTitle(title) ;
  34.                 this.setPrice(price) ;
  35.         }
  36.         public void setTitle(String t){
  37.                 title = t ;
  38.         }
  39.         public void setPrice(float p){
  40.                 price = p ;
  41.         }
  42.         public String getTitle(){
  43.                 return title ;
  44.         }
  45.         public float getPrice(){
  46.                 return price ;
  47.         }
  48.         public void setPerson(Person p){
  49.                 person = p ;
  50.         }
  51.         public Person getPerson(){
  52.                 return person ;
  53.         }
  54. };
  55. public class RefDemo05{
  56.         public static void main(String arg[]){
  57.                 Person per = new Person("张三",30) ;
  58.                 Book bk = new Book("JAVA SE核心开发",90.0f) ;
  59.                 per.setBook(bk) ;                // 设置两个对象间的关系,一个人有一本书
  60.                 bk.setPerson(per) ;                // 设置两个对象间的关系,一本书属于一个人
  61.                 System.out.println("从人找到书 --> 姓名:" + per.getName()+";年龄:"
  62.                         + per.getAge() +";书名:" + per.getBook().getTitle() + ";价格:"
  63.                         + per.getBook().getPrice()) ;        // 可以通过人找到书
  64.                 System.out.println("从书找到人 --> 书名:" + bk.getTitle() + ";价格:"
  65.                         + bk.getPrice() + ";姓名:" + bk.getPerson().getName() + ";年龄:"
  66.                         + bk.getPerson().getAge()) ;        // 也可以通过书找到其所有人
  67.         }
  68. };
复制代码

04. private Book book ;               

21.        public void setBook(Book b){
22.          book = b ;
23.        }
24.        public Book getBook(){
25.          return book ;
  
26.        }

31.        private Person person ;      

48.        public void setPerson(Person p){
49.                person = p ;
50.        }
51.        public Person getPerson(){
52.                return person ;
53.        }

59.    per.setBook(bk) ;              
60.    bk.setPerson(per) ;               
就是这几句代码,都晕了,是怎样的关系啊?

18 个回复

倒序浏览
如注释所言,
Book类中定义了一个私有Person对象,通过setPerson方法与getPerson方法,来设定这个Person对象。它表示的一本书属于一个人(即这本书,属于setPerson方法中传入的perison)
同理,Person类中定义了一个私有Book对象,通过setBook方法与getBook方法,来设定这个Book对象。它表示的一个人有一本书(即这个人,拥有setBook方法中传入的book)。
回复 使用道具 举报
59设置了PER这个对象的Book就是BK,60设置了BK这个对象的Person是PER,你想多了吧?
回复 使用道具 举报
你记清楚有变量类型的是形式参数,没有的就是实参,实参传递过去就是设定一个具体对象
回复 使用道具 举报
过来凑凑热闹 哈哈
回复 使用道具 举报
面向对象这一块有些晕,得反复看视频很多次
回复 使用道具 举报
王石 中级黑马 2014-7-20 00:13:36
7#
我看就是传参数,我也不是怎么懂,来凑凑热闹
回复 使用道具 举报
微行者 发表于 2014-7-19 23:58
面向对象这一块有些晕,得反复看视频很多次

来回几次就晕了
回复 使用道具 举报
ddewym123 发表于 2014-7-19 18:01
如注释所言,
Book类中定义了一个私有Person对象,通过setPerson方法与getPerson方法,来设定这个Person对 ...

好像有点明白了,
回复 使用道具 举报
sugar 中级黑马 2014-7-20 10:17:30
10#
书是一个类,人是一个类,书中有人,人中有书
回复 使用道具 举报
ddewym123 发表于 2014-7-19 18:01
如注释所言,
Book类中定义了一个私有Person对象,通过setPerson方法与getPerson方法,来设定这个Person对 ...

恩恩,你这么一说,要清楚些了。
Thank you!
回复 使用道具 举报
混点经验
回复 使用道具 举报

你技术分都够了
回复 使用道具 举报

多多益善 你面试了吗 不是26号最后一次吗
回复 使用道具 举报
郭可 发表于 2014-7-23 00:51
多多益善 你面试了吗 不是26号最后一次吗

我这期是赶不上了。

都还没学完。

你技术分怎么得的啊
回复 使用道具 举报
yueyouqiang 发表于 2014-7-24 19:37
我这期是赶不上了。

都还没学完。

周末技术分活动 得了8分  其余都是混黑马币换来的   蛮容易的
回复 使用道具 举报
郭可 发表于 2014-7-24 19:41
周末技术分活动 得了8分  其余都是混黑马币换来的   蛮容易的

用了多久啊?
回复 使用道具 举报

十多天吧
回复 使用道具 举报
出来混经验
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马