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 姓名是:小石
车的名字是:八手奥拓
	
原文地址:https://www.cnblogs.com/fxzemmm/p/14847966.html