大家好,我有以下代码会产生错误的原因。如果有人知道,请建议我。
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 定义为“int i = 10”而不是“public int”,因为它不是类变量
错误是public
不能应用于局部变量。改变:
public int i = 10;
至
int i = 10;
i
是main
方法的局部变量。局部变量没有范围public, private, protected
。只有现场成员才能拥有它们。所以去掉变量public
前面的修饰符。i
公共int i = 10;//这将填充错误
你不能用范围声明局部变量public or private
将其更改为int i=10;
它将起作用。
谢谢