这个错误是怎么发生的

问题描述:

大家好我有以下代码产生错误why.If任何知道请建议我。这个错误是怎么发生的

public class Class { 
    public static void main(String args[]) { 
     public int i = 10; 
     i = i++; 
     System.out.println("Value of i=" + i); 
    } 
} 
+0

下一次把你得到的错误。 – m0skit0

+0

你的描述很模糊 - 你不会告诉我们错误是什么,它发生在哪一行。在这个特定情况下,错误是显而易见的。但是,请在您以后的帖子中包含相关信息。帮助自己获得有用的答案。 –

+4

1.由于使用'public'关键字错误,它不编译。 2.如果你删除了'public',它会打印10,当你可能期望11时。替换'i = i ++;''只是'i ++;' – assylias

您正在使用知名度修改器,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++就行了。

+0

'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;它会工作。

谢谢

'我'是一个局部变量。它不能被公开/私人/保护。 虽然可以将其标记为最终。