java基础学习记录:9.1 参数传递

1、基本数据类型作为参数传递

传递的是真正的值,在一个方法中改变变量的值,对另一个方法中的变量的值没有任何影响,各自变量是独立的

例:

public class Method01 {

	public static void add(int x,int y) {
		x += 5;
		y += 5;
		System.out.println("x:" + x);
		System.out.println("y:" + y);
	}
	
	public static void main(String[] args) {
		int x = 5;
		int y = 6;
		System.out.println("x=" + x);
		System.out.println("y=" + y);
		System.out.println("调用add方法");
		add(x,y);
		System.out.println("x的值" + x);
		System.out.println("y的值" + y);
		
	}
}

输出结果:


2、引用数据类型进行参数传递

1.多个引用名称指向同一个对象,当一个引用名称改变对象中的值,则另一个引用名称在访问属性时的值也会发生改变

Student类

public class Student {

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

StudentTest类

public class StudentTest {

	public static void main(String[] args) {
		//实例化学生类
		Student stu = new Student("张三",21);
		Student stu02;
		stu02 = stu;//stu02与stu共用一个地址,也就是说stu02与stu引用名称指向同一个对象
		System.out.println("stu02.name=" + stu02.name);
		System.out.println("stu02.age=" + stu02.age);
		System.out.println("分界线------------------------------------");
		stu02.name = "李四";
		System.out.println("stu02.name=" + stu02.name);
		System.out.println("stu02.age=" + stu02.age);
		System.out.println("分界线------------------------------------");
		System.out.println("stu.name=" + stu.name);
		System.out.println("stu.age=" + stu.age);
		
	}
	
}

输出结果为:


2.当引用数据类型作为参数进行传递时,传递的是地址,也就是说,共用同一个地址,当一个方法中地址所对应的属性值发生改变,则另一个地址中所对应的属性值也会发生改变

Student02类

public class Student02 {

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

StudentTest02类

public class StudentTest02 {

	public static void change(Student02 s) {
		System.out.println(s.name);
		System.out.println(s.age);
		s.name = "无名氏";
	}
	
	public static void main(String[] args) {
		Student02 stu02 = new Student02("张三",21);
		System.out.println(stu02.name);
		System.out.println(stu02.age);
		System.out.println("分界线------------------------");
		change(stu02);
		System.out.println("分界线------------------------");
		System.out.println("stu02.name=" + stu02.name);
		System.out.println("stu02.age=" + stu02.age);

	}
	
}

输出结果为:

3.总结

      1)多个引用名称指向同一个对象,当一个引用名称改变对象中的值,则另一个引用名称在访问属性时的值也会发生改变

      2)当引用数据类型作为参数进行传递时,传递的是地址,也就是说,共用一个地址,当一个方法中地址所对应的属性值发生改变,则另一个地址中所对应的属性值也会发生改变

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值