2016年1月18日 19:07:22人与书的类

本文通过Java代码展示了如何在两个类之间建立关联关系,即Person类与Book类之间的相互引用。具体实现了一个人拥有书籍及书籍属于某人的概念,并进一步扩展到一个人拥有一个孩子的情景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述一个人拥有一本书
一本书属于一个人
class Person{
private String name;
private int age;
private Book book;
public Person(String n,int a){
this.setName(n);
this.setAge(a);
}
public void setName(String n){
name=n;
}
public void setAge(int a){
age=a;
}
public void setBook(Book b){
book=b;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public Book getBook(){
return book;
}
}
class Book{
private String title;
private float price;
private Person person;
public Book(String t,float pr){
this.setTitle(t);
this.setPrice(pr);
}
public void setTitle(String t){
title=t;
}
public void setPrice(float pr){
price=pr;
}
public void setPerson(Person p){
person=p;
}
public String getTitle(){
return title;
}
public float getPrice(){
return price;
}
public Person getPerson(){
return person;
}
}

public class RefDemo04 {
public static void main(String args[]){
Person ps=new Person("张三",30);
Book bk=new Book("java",80.0f);
ps.setBook(bk);
bk.setPerson(ps);
System.out.println(ps.getBook().getTitle());
System.out.println(bk.getPerson().getName());
}
}
运行结果:
java
张三

人有了一个孩子
package com.mz;
class Person2{
private String name;
private int age;
private Person2 child;
private Book2 book;
public Person2(String n,int a){
this.setName(n);
this.setAge(a);
}
public void setName(String n){
name=n;
}
public void setAge(int a){
age=a;
}
public void setChild(Person2 c){
child=c;
}
public void setBook(Book2 b){
book=b;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public Person2 getChild(){
return child;
}
public Book2 getBook(){
return book;
}
}
class Book2{
private String title;
private float price;
private Person2 person;
public Book2(String t,float pr){
this.setTitle(t);
this.setPrice(pr);
}
public void setTitle(String t){
title=t;
}
public void setPrice(float pr){
price=pr;
}
public void setPerson(Person2 p){
person=p;
}
public String getTitle(){
return title;
}
public float getPrice(){
return price;
}
public Person2 getPerson(){
return person;
}
}

public class RefDemo05 {
public static void main(String args[]){
Person2 ps=new Person2("张三",30);
Book2 bk=new Book2("java",80.0f);
Person2 chd=new Person2("张四",10);
Book2 bkc=new Book2("童话",20.0f);
ps.setChild(chd);//人的孩子
chd.setBook(bkc);//孩子的书
bkc.setPerson(chd);//孩子的书属于孩子
ps.setBook(bk);//人的书
bk.setPerson(ps);//书属于一个人
System.out.println(ps.getBook().getTitle());
System.out.println(bk.getPerson().getName());
System.out.println(ps.getChild().getBook().getTitle());
System.out.println(chd.getName());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值