class Test05
{
public static void main(String[] args){
Count count1 = new Count(0);
int times = 0 ;
int x = 0;
for(int i = 0; i < 50; i++){
increment(count1,times);
x++;
}
System.out.println("count1 is "+count1.num);
System.out.println("times is "+times);
System.out.println("x is "+x);
}
public static void increment(Count a,int times){
a.num++;
times++;
}
}
class Count
{
public int num;
Count(int num){
this.num = num;
}
}
求java高手解释代码里面times的变化过程,以及X的变化过程,以及他们之间的区别!
答案:4 悬赏:80 手机版
解决时间 2021-01-03 21:54
- 提问者网友:疯孩纸
- 2021-01-03 00:33
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-01-06 20:54
首先在Count count1 = new Count(0);就初始化num=0;其他也为0
然后for循环i=0,count.num=0,times=0;
i=1,因为a.num++了,所以,count.num=1,times=0;x就是跟着i变的。
注意2个times是不同的,为什么num能累加到50,而times不能,因为num是类的属性,就this.num=num这句。
结果就是
count1 is 50
times is 0
x is 50 还有你class Test05前面要加个public 才能运行的
然后for循环i=0,count.num=0,times=0;
i=1,因为a.num++了,所以,count.num=1,times=0;x就是跟着i变的。
注意2个times是不同的,为什么num能累加到50,而times不能,因为num是类的属性,就this.num=num这句。
结果就是
count1 is 50
times is 0
x is 50 还有你class Test05前面要加个public 才能运行的
全部回答
- 1楼网友:逃夭
- 2021-01-07 00:00
这个就是值传递与引用传递的区别,你可以先去看看C语言中指针相关知识
- 2楼网友:一把行者刀
- 2021-01-06 23:43
其它好理解,关键是times,一般是成员方法里不能改变变量的值
- 3楼网友:鱼忧
- 2021-01-06 22:27
你好!
运行结果:
count1 is 50
times is 0
x is 50
count1=50因为
Count(int num){
this.num = num;
}
这个,相当于set方法,把每次increment(count1,times);之后的值赋给了num,因此可以累加,而times不可以,因为它取得都是int times = 0 ;这个初始化的值。他并没有把times的值更新。
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯