您的位置:首页 > 编程语言 > Java开发

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

2013-05-16 11:11 218 查看
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中传递参数,总结如下:
 

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

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

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

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

实质解释:

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

拷贝,所以在调用方法结素之后,访问的仍是原来的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: