• 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。

  • 相关阅读:
    RedGlove 权限管理系统(1)权限概述
    SPQuery查询语法简要说明
    DataGridView使用技巧大全
    实战asp.net MVC+ADO.NET EntityFramework
    RedGlove 权限管理系统(2)功能模块设计
    C# 如果何从线程中操作控件
    PageHelper 类 和 ValidateHelper 类
    字符串帮助类
    XMLHelper 类
    Android中截取当前屏幕的功能
  • 原文地址:https://www.cnblogs.com/sunzhenxing19860608/p/1957722.html
Copyright © 2020-2023  润新知