package Demo;
/**
* 引用传递的实际应用 设计一个 人和汽车的关系
* 引用是实现两个不同类型之间相互关联的主要手段
* @author kikock
*
*/
class Member { //人这个类
private int mid;
private String name;//
// car有实例化对象表示 人有车
// car为null表示 老子没车
private Car car; // 表示属于人的车
private Member child; //同上 表示属于这个人的孩子
public Member() {
} // 无参构造
public Member(int mid, String name) {
this.mid = mid;
this.name = name;
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return "人员编号:" + this.mid + ",姓名:" + this.name;
}
public void setChild(Member child){
this.child = child ;
}
public Member getChild(){
return this.child;
}
public void setCar(Car car) {
this.car = car;
}
public Car getCar() {
return this.car;
}
}
class Car {
private Member member; // 车属于一个人
private String pname;
public Car() {
} // 无参构造
public Car(String pname) {
this.pname = pname;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getInfo() {
return "车的名字:" + this.pname;
}
public void setMember(Member member) {
this.member = member;
}
public Member getMember() {
return this.member;
}
}
/**
* Member 和Car 都应该是一个独立的对象,而后同过产生对象发生关系
*
*
* @author kikcok
*
*/
public class Test001 {
public static void main(String[] args) {
// 1.设置数据 (m 和 c两个独立对象 没有关系)
Member m = new Member();//调用无参构造
m.setMid(9527); // 设置一个人的编号
m.setName("张三");
Car c = new Car();
c.setPname("宝马c4");
// 2.设置关系
m.setCar(c);
// m对象 有一个c对象这个车 如果不设制为空
c.setMember(m);
// c对象车 属于m这个人
// 3.通过人找到车的信息
System.out.println(m.getCar().getInfo());
//输出 人这个对象 m的车的getInf()方法
// 4.通过车找到人的信息
System.out.println(c.getMember().getInfo());
// 输出 车这个对象 c属于的人的 getInf()方法
/**
* 进一步设计如果每一个人有孩子 ,孩子也可能有车
* 方法1.设计一个孩子子类,孙子类...
* 方法2.或者在member 中设计一个属性
*/
Member chd = new Member();//设置一个孩子
chd.setMid(9528);
chd.setName("陈冠希");
Car cc = new Car("法拉利"); //设置一辆车 ,调用一个参数的构造方法
//一个孩子(chd)有一辆车(cc)
chd.setCar(cc);
//车(cc)属于孩子(chd)
cc.setMember(chd);
//m这个人的孩子是chd
m.setChild(chd);
//通过人(m)找到他孩子(chd)的信息
System.out.println(m.getChild().getInfo());
//通过人(m)找到孩子的车(cc)的信息
System.out.println(m.getChild().getCar().getInfo());//代码链m.getChild().getCar().getInfo()
/**
* ps: 日常描述电脑 :主机 显示器 鼠标 cpu 显卡 内存...
* 代码描述电脑?
* class 键盘{}
* class 鼠标{}
* class cpu{}
* class 硬盘{}
* class 内存{}
* class 显示器{}
* class 主板{}
* class 主机{
* private cpu 对象[] ; (多个用对象数组表示)
* private 硬盘 对象[];
* private 主板 对象;
* private 内存 对象[] ;
* class 电脑{
* private 主机 对象 ; (多个用对象数组表示)
* private 显示器 对象;
* private 键盘 对象;
* private 鼠标 对象 ;
* }
* //合成设计模式
*
*
*/
}
}
/**
* 引用传递的实际应用 设计一个 人和汽车的关系
* 引用是实现两个不同类型之间相互关联的主要手段
* @author kikock
*
*/
class Member { //人这个类
private int mid;
private String name;//
// car有实例化对象表示 人有车
// car为null表示 老子没车
private Car car; // 表示属于人的车
private Member child; //同上 表示属于这个人的孩子
public Member() {
} // 无参构造
public Member(int mid, String name) {
this.mid = mid;
this.name = name;
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return "人员编号:" + this.mid + ",姓名:" + this.name;
}
public void setChild(Member child){
this.child = child ;
}
public Member getChild(){
return this.child;
}
public void setCar(Car car) {
this.car = car;
}
public Car getCar() {
return this.car;
}
}
class Car {
private Member member; // 车属于一个人
private String pname;
public Car() {
} // 无参构造
public Car(String pname) {
this.pname = pname;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getInfo() {
return "车的名字:" + this.pname;
}
public void setMember(Member member) {
this.member = member;
}
public Member getMember() {
return this.member;
}
}
/**
* Member 和Car 都应该是一个独立的对象,而后同过产生对象发生关系
*
*
* @author kikcok
*
*/
public class Test001 {
public static void main(String[] args) {
// 1.设置数据 (m 和 c两个独立对象 没有关系)
Member m = new Member();//调用无参构造
m.setMid(9527); // 设置一个人的编号
m.setName("张三");
Car c = new Car();
c.setPname("宝马c4");
// 2.设置关系
m.setCar(c);
// m对象 有一个c对象这个车 如果不设制为空
c.setMember(m);
// c对象车 属于m这个人
// 3.通过人找到车的信息
System.out.println(m.getCar().getInfo());
//输出 人这个对象 m的车的getInf()方法
// 4.通过车找到人的信息
System.out.println(c.getMember().getInfo());
// 输出 车这个对象 c属于的人的 getInf()方法
/**
* 进一步设计如果每一个人有孩子 ,孩子也可能有车
* 方法1.设计一个孩子子类,孙子类...
* 方法2.或者在member 中设计一个属性
*/
Member chd = new Member();//设置一个孩子
chd.setMid(9528);
chd.setName("陈冠希");
Car cc = new Car("法拉利"); //设置一辆车 ,调用一个参数的构造方法
//一个孩子(chd)有一辆车(cc)
chd.setCar(cc);
//车(cc)属于孩子(chd)
cc.setMember(chd);
//m这个人的孩子是chd
m.setChild(chd);
//通过人(m)找到他孩子(chd)的信息
System.out.println(m.getChild().getInfo());
//通过人(m)找到孩子的车(cc)的信息
System.out.println(m.getChild().getCar().getInfo());//代码链m.getChild().getCar().getInfo()
/**
* ps: 日常描述电脑 :主机 显示器 鼠标 cpu 显卡 内存...
* 代码描述电脑?
* class 键盘{}
* class 鼠标{}
* class cpu{}
* class 硬盘{}
* class 内存{}
* class 显示器{}
* class 主板{}
* class 主机{
* private cpu 对象[] ; (多个用对象数组表示)
* private 硬盘 对象[];
* private 主板 对象;
* private 内存 对象[] ;
* class 电脑{
* private 主机 对象 ; (多个用对象数组表示)
* private 显示器 对象;
* private 键盘 对象;
* private 鼠标 对象 ;
* }
* //合成设计模式
*
*
*/
}
}