当setValue()方法显示变量j时,该变量的值是多少?
答案:2 悬赏:70 手机版
解决时间 2021-01-31 10:33
- 提问者网友:浪荡绅士
- 2021-01-30 14:46
当setValue()方法显示变量j时,该变量的值是多少?
最佳答案
- 五星知识达人网友:煞尾
- 2021-01-30 15:57
答: 我们来分析一下值的获得过程
首先看外部的friend公共变量:
int i = 40;
int j; // j = null这时i的值为40
再来看方法setValue内的:
int i = 20;
j = i + 1; // j = 20 + 1注意:新手都很容易混淆的是: 这里的 i + 1 并非 this.i + 1
所以 j 的值是 20 + 1
再仔细想想,setValue方法调用时的参数为 41 (40++) ,可是方法内并没有用到形参inputValue
所以输出的值就是21
祝你java学习的更好!
PS:
若方法内和方法外的公共变量或常量有同名,就可如此处理,更要分清有this和没有this的区别
public class Test
{
int i = 40;
int j;
public Test()
{
printValue0();
printValue1();
}
public void printValue0()
{
int i = 20; //定义变量i
System.out.println("printValue0: "+i); //没有this,使用内部的i
}
public void printValue1()
{
int i = 20; //定义变量i
System.out.println("printValue1: "+this.i); //有this,使用外部公共变量
}
}
首先看外部的friend公共变量:
int i = 40;
int j; // j = null这时i的值为40
再来看方法setValue内的:
int i = 20;
j = i + 1; // j = 20 + 1注意:新手都很容易混淆的是: 这里的 i + 1 并非 this.i + 1
所以 j 的值是 20 + 1
再仔细想想,setValue方法调用时的参数为 41 (40++) ,可是方法内并没有用到形参inputValue
所以输出的值就是21
祝你java学习的更好!
PS:
若方法内和方法外的公共变量或常量有同名,就可如此处理,更要分清有this和没有this的区别
public class Test
{
int i = 40;
int j;
public Test()
{
printValue0();
printValue1();
}
public void printValue0()
{
int i = 20; //定义变量i
System.out.println("printValue0: "+i); //没有this,使用内部的i
}
public void printValue1()
{
int i = 20; //定义变量i
System.out.println("printValue1: "+this.i); //有this,使用外部公共变量
}
}
全部回答
- 1楼网友:老鼠爱大米
- 2021-01-30 16:28
必然是21呀
这种东西跑一下不就知道了
这种东西跑一下不就知道了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯