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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小歪 中级黑马   /  2014-3-15 21:54  /  829 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小歪 于 2014-3-15 21:56 编辑

/*实现一对一关系*/
/*
简单举例:
一个人对应一本书,一本书对应一个人。
条件:
      姓名   年龄            书                         价格     孩子              书                价格
      张三    30   《Java开发实战经典》    79.8     张小    《一千零一夜》      35.5

要求:代码可由书、父亲、孩子任意一方起遍历所有成员     

*/



class Book             //定义书(Book)类
{
private String tltic;  //书名(封装)
private float price;   //价格(封装)
private Pople per;     //这本书属于一个人
public Book(String tltic,float price) //构造函数对书名、价格初始化
{
this.setTltic(tltic);
this.setPrice(price);
}
public void setTltic(String t)        //修改书名
{
this.tltic=t;
}
public void  setPrice(float p)        //修改价格
{
this.price=p;
}
public void setPer(Pople pe)          //修改所属人
{  
this.per=pe;
}
public String getTltic()              //获得书名
    {
    return tltic;
    }
   
    public float getPrice()               //获得价格
    {
    return price;
    }
   
    public Pople getPer()                 //获得所属人
    {
    return per;
    }
}

class Pople     // 定义人(Pople)类
{
private String name;         //姓名(封装)
private int age;             //年龄(封装)
private Book book;           //这个人拥有一本书
private Pople child;         //这个人有一个孩子
private Pople father;
public Pople(String name,int age)   //构造函数对姓名、年龄初始化
{
this.setName(name);
this.setAge(age);
}
public void setName(String n)     //修改姓名
{
this.name=n;
}
public void setAge(int a)         //修改年龄
{
this.age=a;
}
public void setBook(Book b)       //修改拥有书
{
this.book=b;
}
public void setChild(Pople per)   //修改孩子
{
this.child=per;
}
public void setFather(Pople per)  //修改父亲
{
this.father=per;
}
public String getName()           //获得姓名
{
return name;
}
public int getAge()               //获得年龄
{
return age;
}
public Book getBook()             //获得拥有书
{
return book;
}
public Pople getChild()           //获得孩子
{
return child;
}
public Pople getFather()          //获得父亲
{
return father;
}
}

public class OneToOne
{
public static void main(String[] args)
{
Pople per=new Pople("张三",30);                //实例化人:张三
Book bk1=new Book("Java开发实战经典",79.8f);   //实例化书1:Java开发实战经典  -->  张三
Pople child=new Pople("张小",8);               //实例化孩子:张小   -->  张三
Book bk2=new Book("一千零一夜",35.5f);         //实例化书2:一千零一夜  -->  张小
//设置对应关系
per.setBook(bk1);         
per.setChild(child);
child.setBook(bk2);
child.setFather(per);
   bk1.setPer(per);
   bk2.setPer(child);
  
  //由书开始:
   System.out.println("由书开始找:\n    "+"父亲书名:"+bk1.getTltic()+",父亲书价格:"+bk1.getPrice()+",父亲姓名:"+bk1.getPer().getName()
              +",父亲年龄:"+bk1.getPer().getAge()+"\n孩子姓名:"+bk1.getPer().getChild().getName()
              +",孩子年龄:"+bk1.getPer().getChild().getAge()+",孩子书名:"+bk1.getPer().getChild().getBook().getTltic()
              +",孩子书价格:"+bk1.getPer().getChild().getBook().getPrice());
              
  //由父亲开始:
   System.out.println("\n由父亲开始找:\n    "+"父亲姓名:"+per.getName()+",父亲年龄:"+per.getAge()+",父亲书名:"+per.getBook().getTltic()
              +",父亲书价格:"+per.getBook().getPrice()+"\n孩子姓名:"+per.getChild().getName()+",孩子年龄:"+per.getChild().getAge()
              +",孩子书名:"+per.getChild().getBook().getTltic()+",孩子书价格:"+per.getChild().getBook().getPrice());
              
  //由孩子开始:
   System.out.println("\n由孩子开始找:\n    "+"孩子姓名:"+child.getName()+",孩子年龄:"+child.getAge()+",孩子书名:"+child.getBook().getTltic()
              +",孩子书价格:"+child.getBook().getPrice()+"\n父亲姓名:"+child.getFather().getName()+",父亲年龄:"+child.getFather().getAge()
              +",父亲书名:"+child.getFather().getBook().getTltic()+",父亲书价格:"+child.getFather().getBook().getPrice());           
}
}

运行结果测试:

**********测试成功****

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马