今天在做SCJP练习题的时候遇到了这样一个问题
17.what is the result?
public class aMethod(){
static int i=0;
i++;
return i;
}
public static void main(String args[])
{Test test=new Test();
test.aMethod();
int j=test.aMethod();
System.out.println(j);
}
}
A:0 B:1 C:2 D:Compilation fails.
答案是D
我想问的是是什么引起的编译错误?是static吗??为什么呢,各位高手帮帮小弟吧~~
题里的代码我给输错了不好意思这个是正确的
public class Test{
public int aMethod(){
static int i=0;
i++;
return i;
}
public static void main(String args[])
{Test test=new Test();
test.aMethod();
int j=test.aMethod();
System.out.println(j);
}
}
关于static的问题,求助~
答案:2 悬赏:20 手机版
解决时间 2021-12-21 18:34
- 提问者网友:我没有何以琛的痴心不悔
- 2021-12-21 14:07
最佳答案
- 五星知识达人网友:玩世
- 2021-12-21 14:38
你要把static int i=0;声明到方法外面去做为全局变量,又不是在抽象或接口里面不能声明为静态的局部变量
应该是:
public class Test{
static int i=0;
public int aMethod(){
i++;
return i;
}
public static void main(String args[])
{Test test=new Test();
test.aMethod();
int j=test.aMethod();
System.out.println(j);
}
}
应该是:
public class Test{
static int i=0;
public int aMethod(){
i++;
return i;
}
public static void main(String args[])
{Test test=new Test();
test.aMethod();
int j=test.aMethod();
System.out.println(j);
}
}
全部回答
- 1楼网友:未来江山和你
- 2021-12-21 15:22
这种很明显你是的转化问题了,你定义了一个整数数组,那么你把被定义为char类型的186赋值给int类型a[0],当然会出错了,你要应该这样转化。如果在char[] fre里有字母的那么要这样转化为整型:如:
char c;
c='1';
int a;
a=(int)(c-48);
如果是数字类型的那么你可以直接这样转化,如:
a=c-'0';//这句话和a=c-48完全一样,因为'0'等于48
那么你的问题应该是这样赋值就ok了,如:
a[0]=(int)'186'-'0';
希望是你想要的结果
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯