引用传递实际应用(*)

类关联结构

引用传递是整个JAVA开发与设计过程中3最为重要的技术组成,对于引用传递也与实际的生活密切相关

引用应用分析一

假如说现在说比较好,于是有些人可以有一辆汽车,当然,有些人还是乘坐11路汽车,要求可以通过面向对象的设计实现以上的这种关系转换。

class Person {
	private String name;
	private int age;
	private Car car; //一个人只能有一辆车
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	public void setCar(Car car) {
		this.car = car;
	}
	public Car getCar() {
		return this.car;
	}
	public String getInfo() {
		return "姓名:" + this.name + "、年龄:" + this.age;
	}
}
class Car {
	private String name;
	private double price;
	private Person person;
	public Car(String name, double price) {
		this.name = name;
		this.price = price;
	}
	public void setPerson(Person person) {
		this.person = person;
	}
	public Person getPerson() {
		return this.person;
	}
	public String getInfo() {
		return "汽车品牌型号:" + this.name + "价格: " + this.price;
	}
}

public class Demo {
	public static void main(String args[]) {
		//第一步:声明对象并且设置彼此的关系
		Person person = new Person("林强",29);
		Car car = new Car("宾利",8000000.00);
		person.setCar(car);	//一个人有一辆车
		car.setPerson(person);//一辆车属于一个人
		//第二步:根据关系获取数据
		System.out.println(person.getCar().getInfo());	//代码链
		System.out.println(car.getPerson().getInfo());
	}
}
/*汽车品牌型号:宾利价格: 8000000.0
姓名:林强、年龄:29*/

本次person和car都是自定义类型,但是person和car都可以明确描述出某一类群体,现在是针对群体关系做出的设置。

自身引用

引用应用分析二

现在已经确定了人与车的关系,但是现在也可以进一步操作该操作的完善 ,例如:一个人肯定会有孩子,孩子也会成年,成年之后也可以有车。

class Car{
    private String name;
    private double price;
    private Person person;//一辆车属于一个人

    public Car(String name , double price){
        this.name = name;
        this.price = price;
    }
    public void setPerson(Person person){
        this.person = person;
    }
    public Person getPerson(){
        return this.person;
    }
    public String getInfo(){
        return "汽车品牌型号:" + this.name + "、汽车价值:" + this.price;
    }
}
class Person{
   private String name;
   private int age;
   private Car car;//一个人有一辆车
   private Person[] children;//一个人有多个孩子

   public Person(String name , int age){
       this.name = name;
       this.age = age;
   }
   public void setChildren(Person[] children){
       this.children = children;
   }
   public Person[] getChildren(){
       return this.children;
   }
   public void setCar(Car car){
       this.car = car;
   }
   public Car getCar(){
       return this.car;
   }
   public String getInfo(){
       return "姓名:" + this.name + "、年龄:" + this.age;
   }
}
public class ArrayDemo {
    public static void main(String[] args) {
        //第一步:声明对象并且设置彼此的关系
        Person person = new Person("吴硕" , 29);
        Car car = new Car("'宾利" , 8000000.00);
        Person childA = new Person("林强" , 18);
        Person childB = new Person("郭仁义" , 18);
        childA.setCar(new Car("BMW X1" , 300000.00));
        childB.setCar(new Car("法拉利" , 1500000.00));
        person.setChildren(new Person[]{childA,childB});
        person.setCar(car);//一个人有一辆车
        car.setPerson(person);//一辆车属于一个人
        //第二步:根据关系获取数据
        System.out.println(person.getCar().getInfo());//代码链
        //汽车品牌型号:'宾利、汽车价值:8000000.0
        System.out.println(car.getPerson().getInfo());//通过车找到人,再找到人的具体信息
        //姓名:林强、年龄:29

        //根据人找到所有的孩子以及他们对应的车
        for (int x = 0 ; x < person.getChildren().length ; x++){
            System.out.println("\t|-" + person .getChildren()[x].getInfo());
            System.out.println("\t\t|-" + person.getChildren()[x].getCar().getInfo());
        }
        /*
        * |-姓名:林强、年龄:18
		    |-汽车品牌型号:BMW X1、汽车价值:300000.0
	      |-姓名:郭仁义、年龄:18
		    |-汽车品牌型号:法拉利、汽车价值:1500000.0
        * */
    }
}

这些关系的匹配都是通过引用数据类型的关联来完成的。

三、合成设计模式

拆分后再进行组合的设计模式被称为合成设计模式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值