这个错误是怎么发生的
大家好我有以下代码产生错误why.If任何知道请建议我。这个错误是怎么发生的
public class Class {
public static void main(String args[]) {
public int i = 10;
i = i++;
System.out.println("Value of i=" + i);
}
}
您正在使用知名度修改器,public
,为一个局部变量。这是不允许的(并且没有意义),因为局部变量的范围总是限制在该方法内。
下面的代码:
public class Class {
public static void main(String args[]) {
int i = 10;
i = i++;
System.out.println("Value of i=" + i);
}
}
...编译没有问题。
注意你还可能移动i
方法之外的领域,这也将工作:
public class Class {
public int i = 10;
public static void main(String args[]) {
i = i++;
System.out.println("Value of i=" + i);
}
}
注意i = i++
也可以导致一个问题有不同,以你期待什么,但它的没有更透彻的解释就难说了。你可能只是指i++
就行了。
'i = i ++'也可能是错误的。 – assylias
,因为你不能指定局部变量的访问说明符
public int i = 10;
使其
int i = 10;
而且为assylias commented,它不会让在分配任何影响如果你这样做i = i++;
你只应定义i设定为“INT I = 10”,而不是“公众诠释”,因为它不是一个类变量
的错误是public
不能适用于局部变量。变化:
public int i = 10;
到
int i = 10;
i
是一个局部变量来的main
方法。局部变量没有范围public, private, protected
。只有现场成员可以拥有它们。因此请删除i
变量前面的public
修饰符。
public int i = 10; // 这将填充错误
你不能作用域声明局部变量喜欢它public or private
更改为int i=10;
它会工作。
谢谢
'我'是一个局部变量。它不能被公开/私人/保护。 虽然可以将其标记为最终。
下一次把你得到的错误。 – m0skit0
你的描述很模糊 - 你不会告诉我们错误是什么,它发生在哪一行。在这个特定情况下,错误是显而易见的。但是,请在您以后的帖子中包含相关信息。帮助自己获得有用的答案。 –
1.由于使用'public'关键字错误,它不编译。 2.如果你删除了'public',它会打印10,当你可能期望11时。替换'i = i ++;''只是'i ++;' – assylias