永发信息网

关于JAVA引用传递和值传递的题

答案:1  悬赏:80  手机版
解决时间 2021-02-20 17:22
public class passingDemo{
public void fist(){
xObject o=new xObject();
o.x=5;
int x=5;
changeThem(x,o);
System.out.println();
System.out.println("Back in the original method");
System.out.println("The value of o.x is " + o.x);
System.out.println("But.The value of x is now " + x);

}
public void changeThem(int x,xObject o){
x=9;
o.x=9;
System.out.println("In the changThem method");
System.out.println("The value of o.x is " + o.x);
System.out.println("The value of x is now " + x);

}
public static void main(String args[]){
passingDemo myDemo=new passingDemo();
myDemo.fist();
}
class xObject{
public int x=5;
}
}
输出结果
In the changThem method
The value of o.x is 9
The value of x is now 9

Back in the original method
The value of o.x is 9
But.The value of x is now 5

为什么输出顺序是从changeThem开始的。为什么first方法里的o.x变成9了

还有值传递和引用传递是怎么进行的。满意加分
最佳答案
1. 简单类型是按值传递的

Java 方法的参数是简单类型的时候,是按值传递的 (pass by value)。这一点我们可以通过一个简单的例子来说明:





public class Test {

public static void test(boolean test) {

test = ! test;

System.out.println("In test(boolean) : test = " + test);

}

public static void main(String[] args) {

boolean test = true;

System.out.println("Before test(boolean) : test = " + test);

test(test);

System.out.println("After test(boolean) : test = " + test);

}

}

运行结果:

Before test(boolean) : test = true
In test(boolean) : test = false
After test(boolean) : test = true

不难看出,虽然在 test(boolean) 方法中改变了传进来的参数的值,但对这个参数源变量本身并没有影响,即对 main(String[]) 方法里的 test 变量没有影响。那说明,参数类型是简单类型的时候,是按值传递的。以参数形式传递简单类型的变量时,实际上是将参数的值作了一个拷贝传进方法函数的,那么在方法函数里再怎么改变其值,其结果都是只改变了拷贝的值,而不是源值。

详细的看www.javababy.cn
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
急急急,求关于诗歌中伟大的孤独者的形象
23号更新的新客户端能支持win8系统吗?
呼市尖尖树网络科技公司怎么样
永丰门市部怎么去啊,有知道地址的么
求香酉所有小说!
我看过一个图片 是微微一笑很倾城里 杨洋给郑
王大伯参加我市农村合作医疗保险.条款规定:
改什么归什么的成语有哪些
粤语里的"留低","掉低"什么意思呀?~
office2016之后是什么版本
肇庆广宁到清远要多久?
护花野蛮人有多少章
问大家一下excel的工作表标签的字体大小怎么
世纪广告装潢这个地址在什么地方,我要处理点
萍乡市祥丰贸易有限公司地址在什么地方,想过
推荐资讯
去除家用尿桶臭味最有效的办法
哎呀我烤怎么去啊,有知道地址的么
找一部科幻片主角小男孩和小女孩,兄妹关系 父
是不是去很多上海女人都嫁给了日本人
什么是房中房
六人堂我想知道这个在什么地方
刀剑2电脑配置有哪些要求 电脑配置要求介绍
孝感市某水产研究所有10个池塘,其中有5个池
王记早点怎么去啊,有知道地址的么
金麦特模具地址有知道的么?有点事想过去
农村有些村房子修的持别好,为什么还要棚户区
求歌!Phoebe ryan - Mine
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?