引用传递是java的核心,因为有了引用传递更好的表现出现实世界的抽象。
某种关系:一个人有一辆车或没有车
两个实体类 Person Car
范例:
class Member{
private int name ;
private int age;
//如果car为空,没车
private Car car; //一个人只能有一辆车
public Member(String name.int age){
this.name = mane;
this.age = age;
}
piblic void setCar(Car car){
this.car = car;
}
pubulic void getCar(){
return this.car;
}
public String getMemberInfo(){
return :"Member name =" + this.name + ",age = " + age;
}
}
class Car{
private String name;
private double price;
private Member member;
public Car(String name.double price){
this.name = name;
this.price = price;
}
public setMember (Member member){
this.member = member;
}
public getMember (){
return this.member;
}
public String getCarInfo (){
retrun :"Car name = " + this.name + ",price = " + price;
}
}
public class TestDemo{
public static void main(String args[]){
//第一步:根据关系设置相应数据库
//1.分别创建各自对象的实例
Member mem = new Member("萌萌",30);
Car car =new Car("Q7",700000.0);
//2.设置对象间的引用关系
mem.setCar(car);//一个人有一辆车
car.setMember(mem);//一辆车归属一个人
//第二步:根据关系取出数据库
//3.通过人可以找到车
System.out.println(mem.getMemberInfo());
System.out.println(mem.getCar().getCarInfo());
//4.通过车找到人
System.out.println(car.getCarInfo());
System.out.println(car.getMember.getMemberInfo());
}
}
进一步设计,萌萌有后代,后代还有车
建立孩子类,如果还有下一代再建立下一代类,这样会建立好多重复类
因此直接在member类中建立一个新的属性
class Member{
private int name ;
private int age;
private Member child();
//如果car为空,没车
private Car car; //一个人只能有一辆车
public Member(String name.int age){
this.name = mane;
this.age = age;
}
public setChild(Member child){
this.child = child;
}
public getChild() {
return this.child;
}
piblic void setCar(Car car){
this.car = car;
}
pubulic void getCar(){
return this.car;
}
public String getMemberInfo(){
return :"Member name =" + this.name + ",age = " + age;
}
}
class Car{
private String name;
private double price;
private Member member;
public Car(String name.double price){
this.name = name;
this.price = price;
}
public setMember (Member member){
this.member = member;
}
public getMember (){
return this.member;
}
public String getCarInfo (){
retrun :"Car name = " + this.name + ",price = " + price;
}
}
public class TestDemo{
public static void main(String args[]){
//第一步:根据关系设置相应数据库
//1.分别创建各自对象的实例
Member mem = new Member("萌萌",30);
Car car =new Car("Q7",700000.0);
Member child = new Member("美美",5);
Car cc = new Car("碰碰车",10.0);
//2.设置对象间的引用关系
mem.setCar(car);//一个人有一辆车
car.setMember(mem);//一辆车归属一个人
//第二步:根据关系取出数据库
//3.通过人可以找到车
System.out.println(mem.getMemberInfo());
System.out.println(mem.getCar().getCarInfo());
System.out.println(child.getMemberInfo());
System.out.println(child.getCar().getCarInfo());
//4.通过车找到人
System.out.println(car.getCarInfo());
System.out.println(car.getMember.getMemberInfo());
System.out.println(cc.getCarInfo());
System.out.println(cc.getMember.getMemberInfo());
}
}
只有将这些细小的类合并在一起才能完整的描述一个概念,而且在实际生活中这些细小的组成部分都可以替代替换,这样的设计就属于合成设计模式。