java入门 学习日志八(面向对象六)
引用传递
引用传递的基本概念
引用传递的核心意义是:通一块堆内存被多块栈内存指向,不同的栈内存可以修改同一块堆内存的内容。
- 1 基本数据类型在进行参数传递的时候,是值传递,所以调用方法时不能修改原栈内存指向的堆内存的数据。
- 2 String类数据内容一旦生成则不可被修改 ,除非改变所要修改的栈内存的指向。
- 3 String 类数据做方法参数的时候,引用传递给参数一块堆内存地址。
- 4 通过调用方法属性对对象属性的修改可以保存下来。
引用传递的应用
class Member{
private int mid;
private String name;
private Member child;
private Car car;
public Member(String name,int mid) {//含参构造方法
this.name=name;
this.mid=mid;
}
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;
}
public String getInfo() {
return "人的编号是:"+this.mid+" 姓名是:"+this.name;
}
}
class Car{
private String name ;
private Member member;
public Car(String name) {
this.name=name;
}
public void setMember(Member member) {
this.member=member;
}
public Member getMember() {
return this.member;
}
public String getInfo() {
return "车的名字是:"+this.name;
}
}
public class TestDemo{
public static void main(String args[]) {
Member f=new Member("老付",1);
Member s=new Member("小石",2);
Car c1=new Car("法拉利");
Car c2=new Car("八手奥拓");
f.setChild(s);
f.setCar(c1);
s.setCar(c2);
System.out.println(f.getInfo()); //输出人的信息
System.out.println(f.getCar().getInfo());//人找车
System.out.println(f.getChild().getInfo());//人找儿子
System.out.println(f.getChild().getCar().getInfo());//人找儿子的车
}
}
程序执行结果:
人的编号是:1 姓名是:老付
车的名字是:法拉利
人的编号是:2 姓名是:小石
车的名字是:八手奥拓