-2

大家好,我有以下代码会产生错误的原因。如果有人知道,请建议我。

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

7 回答 7

3

因为您不能在局部变量上指定访问说明符

public int i = 10;

做了

int i = 10;

也正如assylias 评论的那样,如果你这样做,它不会对作业产生任何影响i = i++;

于 2012-05-15T10:22:52.840 回答
1

您正在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++在那条线上。

于 2012-05-15T10:23:01.723 回答
1

'i' 是一个局部变量。它不能是公共的/私有的/受保护的。您可以将其标记为最终版本。

于 2012-05-15T10:27:00.437 回答
0

您应该只将 i 定义为“int i = 10”而不是“public int”,因为它不是类变量

于 2012-05-15T10:23:03.870 回答
0

错误是public不能应用于局部变量。改变:

public int i = 10;

int i = 10;
于 2012-05-15T10:23:08.393 回答
0

imain方法的局部变量。局部变量没有范围public, private, protected。只有现场成员才能拥有它们。所以去掉变量public前面的修饰符。i

于 2012-05-15T10:23:18.753 回答
0

公共int i = 10;//这将填充错误

你不能用范围声明局部变量public or private

将其更改为int i=10;它将起作用。

谢谢

于 2012-05-15T10:23:32.560 回答