java1234开源博客系统
博客信息

Java面向对象-方法的值传递和引用传递

发布时间:『 2016-08-21 14:21』  博客类别:Java核心基础  阅读(7849) 评论(3)

Java面向对象-方法的值传递和引用传递


方法的值传递:

值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响:


上代码:

package com.java1234.chap03.sec03;

public class Person {

	void speak(int age){
		System.out.println("我今年"+age+"岁了");
		age=24; // 作用范围是方法里
	}
	
	public static void main(String[] args) {
		Person xiaoli=new Person();
		int age=23;
		xiaoli.speak(age);
		System.out.println(age);
	}
}


引用传递,传递的是地址,对象里的属性在方法里值修改,对外面有影响,我们通过对象.属性可以获取到最新的数据;

上代码:

package com.java1234.chap03.sec03;

class SanWei{
	int b; // 胸围
	int w; // 腰围
	int h; // 腿围
}

public class Person {

	void speak(int age,SanWei sanWei){
		System.out.println("我今年"+age+"岁了,我的三围是:"+sanWei.b+","+sanWei.w+","+sanWei.h);
		age=24; // 作用范围是方法里
		sanWei.b=80; // 胸围改成80
	}
	
	public static void main(String[] args) {
		Person xiaoli=new Person();
		int age=23;
		SanWei sanWei=new SanWei();
		sanWei.b=90;
		sanWei.w=60;
		sanWei.h=90;
		// age传递的是值 ,sanWei是对象,传递的是引用(地址,c里叫指针)
		xiaoli.speak(age,sanWei);
		System.out.println(age);  
		System.out.println(sanWei.b);
	}
}


下面我们给下内存示意图:

QQ鎴浘20160821142042.jpg


关键字:   java  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有