java中将对象作为参数的本质

  面试时碰到过许多关于java方法中传递对象参数的问题,关于java中传递参数,总结如下:

 

 a.传递值类型参数,如基本数据类型,不可以改变变量的值.

 b.传递对象类型参数,可以改变对象变量的实例域值.

 c.传递对象类型参数,不可以改变引用地址.

 

 经典示例:交换两个引用类型变量(失败)

 package com.webm; public class Test { /** * @param args */ public static void main(String[] args) { Manager m1=new Manager(1,"谢东","人力资源部"); Manager m2=new Manager(2,"李志","市场部"); System.out.println("交换前"); m1.display(); m2.display(); System.out.println("交换中"); Manager.warpManage(m1, m2); System.out.println("交换后"); m1.display(); m2.display(); } } class Manager{ private int mid; private String mname; private String depart; public Manager(int m,String n,String d){ this.mid=m; this.mname=n; this.depart=d; } public static void warpManage(Manager m1,Manager m2){ Manager temp=null; temp=m1; m1=m2; m2=temp; System.out.println("name1="+m1.mname+" depart1="+m1.depart); System.out.println("name2="+m2.mname+" depart2="+m2.depart); } public void display(){ System.out.println("name="+this.mname+" depart="+this.depart); } }

 

 

 

实质解释:

  java方法中传递参数时,无论是传递基本数据类型还是引用类型,都是传递参数(显示参数)的一个

拷贝,所以在调用方法结素之后,访问的仍是原来的值.

你可能感兴趣的:(笔记心得,java,manager,string,class,面试)