zoukankan      html  css  js  c++  java
  • java中形参的值传递

    java中形参的传递方式只有一种,那就是值传递,不管参数的类型是基本类型还是类类型。

    当参数类型是基本类型时,形参获取实参一个副本并传递给方法。如下程序所示:

    public static void changeInt(int a){
    	a=100;
    }
    public static void main(String[] args){
    	int a=10;
    	changeInt(a);
    	System.out.println(a);
    }

    输出结果当然是10。

    当参数类型是类类型时,形参获取实参地址(实参实际上就是存储的地址,也就是说它的值就是地址)的一个副本并传递给方法,如下程序所示:

    public static void main(String[] args){
    		Name n=new Name("zhenxing","sun");
    		changeName(n);
    		System.out.println(n);
    }
    public static void changeName(Name n){
    		n=new Name("yuanyuan","sun");
    		//n.firstName="yuanyuan";
    }
    
    Name类的定义
    class Name {
    	public String firstName;
    	public String lastName;
    	
    	public Name(String firstName,String lastName){
    		this.firstName=firstName;
    		this.lastName=lastName;
    	}
    	
    	public String toString(){
    		return firstName+"-"+lastName;
    	}
    }
    

    程序的输出是zhenxing-sun,下图分析了程序的执行过程。

    由图中可以看到虽然changeName方法中的n变量指向了新的Name实例,但是main方法中的n变量指向的对象并没有改变,所以最终的输出时zhenxing-sun。

  • 相关阅读:
    MongoDB入门
    MongoDB基础命令
    MongoDB查询
    MongoDB索引
    MongoDB聚合
    MongoDB进阶
    Elasticsearch简介与安装
    ElasticSearch索引
    shiro xml标准配置
    shiro双realm验证
  • 原文地址:https://www.cnblogs.com/sunzhenxing19860608/p/1957722.html
Copyright © 2011-2022 走看看