通过代码模拟现实的关系。人有车,有孩子,车也有主人。通过几个类之间的关系,体会引用传递。
package passByReference;
public class Member {
private String mName;
private int mAge;
private Car car;//人有车
private Member child;//人有孩子
public Member(String name,int age){
this.mName = name;
this.mAge = age;
}
//为人添加车
public void setCar(Car car){
this.car = car;
}
//通过人找车
public Car getCar(){
return this.car;
}
//为人添加孩子
public void setChild(Member child){
this.child = child;
}
//通过人找孩子
public Member getChild(){
return this.child;
}
public String getInfo(){
return "人名:"+this.mName + ",年龄:"+this.mAge;
}
}
package passByReference;
public class Car {
private String cName;
private int cPrice;
private Member member;//车有主人
public Car(String name,int price){
this.cName = name;
this.cPrice = price;
}
//为车设置主人
public void setMember(Member member){
this.member = member;
}
//通过车找主人
public Member getMember(){
return this.member;
}
public String getInfo(){
return "车名:" + this.cName + ",车的价格:" + this.cPrice;
}
}
实际调用以下上面两个类:
package passByReference;
public class Application {
public static void main(String[] args) {
//创建各种对象
Member father = new Member("Jack",50);
Member son = new Member("Jackson",21);
Car c1 = new Car("Honda",34);
Car c2 = new Car("Toyota",52);
//设置对象之间的相互关系
father.setCar(c1);
son.setCar(c2);
father.setChild(son);
c1.setMember(father);
c2.setMember(son);
//通过既定结构取出关系
System.out.println(father.getCar().getInfo());//通过人找车
System.out.println(c1.getMember().getInfo());//通过车找人
System.out.println(father.getChild().getInfo());//通过人找孩子
System.out.println(father.getChild().getCar().getInfo());//通过人找到孩子的车
}
}
运行结果如下: