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

java中有关参数传递的问题

2015-10-22 09:54 603 查看
        首先声明,本人是菜鸟,基础很一般,所以可能有不少地方理解的不到位甚至错误,如有不对地方,还请各位多多批评指出!

简单来说java中所有的参数传递的都是值,比如基本数据(int,double,char等)类型的传递是数值(将“实参”的值的复制传递给“形参”),所以在方法体中改变有关参数的值并不会改变“实参”的值。类似的如果“实参”传递的是对象,就将“实参”的值复制给“形参”,即此时实参和形参是两个不同的变量,但是它们此时引用的是同一个对象。因此如果想要改变“实参”的值,通过基本数据类型的数值传递在java中是不能实现的,只能通过传递对象来实现。具体可以见下面的例子。public
public class Test_1{

static void change(Test one,Test two){
int c;
c=one.a;
one.a=two.a;
two.a=c;

/* 此法不可行,因为主函数中对象的引用无法改变,以下代码改变的只是change 函数
中的对象的引用,对主函数中对象的引用没有影响。
Test c;
c=one;
one=two;
two=c;
*/
}
public static void main(String args[]){
Test one=new Test(5);
Test two=new Test(8);
System.out.println("交换前one中a的值为:"+one.get()+",two中b的值为:"+two.get());
change(one,two);
System.out.println("交换后one中a的值为:"+one.get()+",two中b的值为:"+two.get());
}
}
class Test{
int a;
Test(int a){
this.a=a;
}
public int get(){
return a;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: