引用传递实际应用

引用传递是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());
		
	}
}

       只有将这些细小的类合并在一起才能完整的描述一个概念,而且在实际生活中这些细小的组成部分都可以替代替换,这样的设计就属于合成设计模式。

      

猜你喜欢

转载自blog.csdn.net/weixin_38266599/article/details/81510064