JAVA解释下运行以下程序为什么出现不能对非静态字段 a 进行静态引用
答案:4 悬赏:50 手机版
解决时间 2021-11-17 23:29
- 提问者网友:疯孩纸
- 2021-11-17 08:16
JAVA解释下运行以下程序为什么出现不能对非静态字段 a 进行静态引用
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-11-17 09:05
非静态的属性是不能够在静态的方法里引用的,想要引用的话必须是用对象来引用追问"a["+i+"]=" + a[i]的加号是啥意思追答哪个加号呀?a[i]前面的那个么?这个是拼字符串的,意思是说将a[i]的值连到 a["+i+"]= 的后面,你可以看看输出结果就明白了比如说如果i=1, a[i]=2,这个将输出a[1]=2追问括号里的加号呢["+i+"追答同样的意思,i=2时,输出[2]追问那没这个加号是啥意思追答"a["这个是一个字符串,"]="这是一个字符串,然后i是一个数,中间的+号将它们练成一个字符串,这里默认的将int型转成string
全部回答
- 1楼网友:迷人又混蛋
- 2021-11-17 10:59
因为你的这句话是静态的static void getnumber()throws ArithmeticException,要想正常运行把数组加上static 或者static void getnumber()throws ArithmeticException这句话的static去掉。
- 2楼网友:枭雄戏美人
- 2021-11-17 10:54
因为静态方法或属性会在类被加载的时候初始化 而非静态的属性和方法要在创建对象的时候才初始化 所以在静态的方法引用到非静态的属性a
- 3楼网友:佘樂
- 2021-11-17 09:15
因为数组 a 不是静态的啊,getmubber() 方法是静态的,不能直接引用实体变量,把相关变量都改成静态的:
static int np=3;
static int grade;
static int[] a = new int[np];追问"a["+i+"]=" + a[i]的加号是啥意思追答它是连接字符串用的,并且会将内置类型转换成对应的字符串形式,比如把 a[ i ] 转换成 "3"
static int np=3;
static int grade;
static int[] a = new int[np];追问"a["+i+"]=" + a[i]的加号是啥意思追答它是连接字符串用的,并且会将内置类型转换成对应的字符串形式,比如把 a[ i ] 转换成 "3"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯