永发信息网

关于static的问题,求助~

答案:2  悬赏:20  手机版
解决时间 2021-12-21 18:34
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-12-21 14:07
今天在做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);
}
}
最佳答案
  • 五星知识达人网友:玩世
  • 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);
}
}
全部回答
  • 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'; 希望是你想要的结果
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯