zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    四个好看的CSS样式表格
    POJ 2255 Tree Recovery
    黑马程序猿_2014 7月 我使用多线程体验
    Dos命令将合并两个文本文件的内容
    栈和堆之间的差(他转身无数的文章)
    【Espruino】NO.12 加速度计演示
    MySQL进口.sql文件和常用命令
    typedef和define具体的具体差异
    muduo网络图书馆评测
    Web采矿技术
  • 原文地址:https://www.cnblogs.com/zwch/p/10576928.html
Copyright © 2011-2022 走看看