java形参与作用域

在形参调用中 java的基本数据类型及其包装类型是传值调用,其他对象引用类型是传引用。

形参调用的时候:
* 基本类型和包装类型 相当于传了一个复制的值过去,方法内的运算不会回传,不会改变原参数的值。
* 引用对象类型 则传递了对象的引用,方法内的运算会使对象的属性发生变化。

基本类型和包装类型

    	//基本类型和基本类型的包装类型 
	//方法内的形参,只是复制了一份对象,并非传递了对象或引用
	Integer i = new Integer(0);
	@Test
	public void run4() {
		System.out.println("获取i值, i="+i);

		//调方法传参数 i,进行i++
		scope(i);//方法内i值变化了,方法外并未变化
		System.out.println("run4方法内 调scope方法i++后, i="+i);

                i++;//run4 方法内的 i++ 确实的改变了成员变量i的值
                System.out.println("run4方法内 i++后,i="+i);

                System.out.println("获取i值, i="+i);
	}
	
	public void scope(Integer i){
		i++;
		System.out.println("scope方法内 i++后, i="+i);
	}

运行结果:

获取i值, i=0
scope方法内 i++后, i=1
run4方法内 调scope方法i++后, i=0
run4方法内 i++后,i=1
获取i值, i=1

引用对象类型:

    class Letter {
	char c;
    }

    public class PassObject{
	    static void f(Letter y){
		    System.out.println("y.c:"+y.c);
		    y.c = 'z';
    	    }
	    public static void main(String[] args) {
		    Letter x = new Letter();
		    x.c = 'a';
		    System.out.println(x.c);
		    f(x);
		    System.out.println(x.c);
	    }
    }

运行结果:

a
y.c:a
z
原文地址:https://www.cnblogs.com/zwch/p/10576928.html