01 07Java中级之引用传递实际应用

1 类关联结构

引用传递是整个Java开发过程之中最为重要的技术组成。

定义一个Person类、一个Car类,人可以拥有车,车也可以有车主。此时代码应为:

class Car{
	private String name;
	private double price;
	private Person person;

	public Car(){}

	public Car(String name, double price){
		this.name = name;
		this.price = price;
	}

	public String getInfo(){
		return "Cname: " + this.name +
			"Cprice: " + this.price;
	}

	public void setPerson(Person person){
		this.person = person;
	}

	public Person getPerson(){
		return this.person;
	}
}
class Person{
	private String name;
	private int age;
	private Car car;
	
	public Person(){}

	public Person(String name, int age){
		this.name = name;
		this.age = age;
	}

	public String getInfo(){
		return "Pname: " + this.name +
			"Page: " + this.age;
	}

	public void setCar(Car car){
		this.car = car;
	}

	public Car getCar(){
		return this.car;
	}
}
public class JavaDemo{
	public static void main(String[] args){
		Person person = new Person("lks", 24);
		person.setCar(new Car("BWM",1000000));
		System.out.println(person.getInfo());
		System.out.println(person.getCar().getInfo());  //***
	}
}

2 自身关联

定义一个Person类、一个Car类,人可以拥有车,车也可以有车主。Person有孩子,孩子也可能有车,此时代码应为:

class Car{
	private String name;
	private double price;
	private Person person;

	public Car(){}

	public Car(String name, double price){
		this.name = name;
		this.price = price;
	}

	public String getInfo(){
		return "Cname: " + this.name +
			"Cprice: " + this.price;
	}

	public void setPerson(Person person){
		this.person = person;
	}

	public Person getPerson(){
		return this.person;
	}
}
class Person{
	private String name;
	private int age;
	private Car car;
	private Person children[];
	
	public Person(){}

	public Person(String name, int age){
		this.name = name;
		this.age = age;
	}

	public String getInfo(){
		return "Pname: " + this.name +
			"Page: " + this.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 class JavaDemo{
	public static void main(String[] args){
		Person person = new Person("lks", 24);
		Person childA = new Person("llj", 12);
		Person childB = new Person("zsl", 4);
		childA.setCar(new Car("asd", 4));
		childB.setCar(new Car("bbc", 10));
		person.setCar(new Car("BWM",1000000));
		person.setChildren(new Person[]{childA, childB});
		System.out.println(person.getInfo());
		System.out.println(person.getCar().getInfo());  //***
		for( int i = 0; i < person.getChildren().length; i++ ){
			System.out.println("\t|-" + person.getChildren()[i].getInfo());
			System.out.println("\t\t|-" + person.getChildren()[i].getCar().getInfo());
		}
	}
}

3 合成设计模式

定义出一种可以描述电脑组成的类,这时就必须进行拆分,电脑有两个部分:显示器和主机。此时伪代码应为:

class 电脑{
	private 显示器 对象名称;
	private 主机 对象名称;
}

class 显示器{}

class 主机{
	private 主板 对象名称;
	private 键盘 对象名称;
	private 鼠标 对象名称;
}

class 主板{
	private 内存 对象名称[];
	private CPU 对象名称[];
	private 显卡 对象名称;
	private 硬盘 对象名称[];
}
class 键盘{}

class 鼠标{}

class 内存{}

class CPU{}

class 显卡{}

class 硬盘{}

任何的人类产品都是可以拆分,而后进行重新组合,所以这样的设计在java之中称为合成设计模式。

发布了36 篇原创文章 · 获赞 11 · 访问量 983

猜你喜欢

转载自blog.csdn.net/weixin_43762330/article/details/104478385