永发信息网

求java高手解释代码里面times的变化过程,以及X的变化过程,以及他们之间的区别!

答案:4  悬赏:80  手机版
解决时间 2021-01-03 21:54
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;
}
}
最佳答案
首先在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 才能运行的
全部回答
这个就是值传递与引用传递的区别,你可以先去看看C语言中指针相关知识
其它好理解,关键是times,一般是成员方法里不能改变变量的值
你好! 运行结果: 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的值更新。 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
已知一次函数y=kx+(k2+k-9)的图象过(-1,0
佳木斯哪里有卖浪琴表的阿。。???
1/2 1/2 1/2=3的答案
为什么有这么多学前儿童发展心理理论?
麋鹿纹身的象征意义
多选题下列说法正确的是A.大量分子的无规则运
若点M(2x,x-2)在x轴上,则点M的坐标是____
有关地球圈层的正确说法是A.大气圈中的臭氧主
单选题Youcanneverdothejob________youha
单选题下列句子中,划线的成语使用正确的一项
单选题2007年诺贝尔生理学或医学奖授予美国的
单选题He________hisworkwithanimals.A.
请问,思科公司到底是干什么的?请简单回答下,
大众途观后雨刮器怨怎喷水
单选题决定生物性状的遗传物质的基本单位是A.
推荐资讯
缤智哪个颜色最好看
七下读书笔记一共10面,每面不少于400字 有水
滚动轴承31300的代号含义是什么?
孕妇梦见和亲人吵架
单选题量取10mL液体,最好选用下列哪种量程的
在750×□(□是一位数)中,它们乘积的末尾A
如图,结合图片,2012年是邓小平南巡讲话周年
甲、乙、丙三人同时用1万元进行投资,甲按3.2
下列关于细胞共性的描述不正确的是A.ATP是细
李白描写月亮的诗句。
怀孕什么时间做四维
下列选项中画线的词语使用恰当的一项是A.我在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?