こんにちはすべて私はなぜエラーを生成する次のコードを持っています。何か知っているなら私に提案してください。
public class Class {
public static void main(String args[]) {
public int i = 10;
i = i++;
System.out.println("Value of i=" + i);
}
}
ローカル変数にアクセス指定子を指定できないため
public int i = 10;
成功する
int i = 10;
また、assyliasがコメントしたように、あなたがそうするならば、それは割り当てに何の影響も与えません。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はクラス変数ではないため、「public int」ではなく、「int i=10」としてのみ定義する必要があります。
エラーは、public
ローカル変数に適用できないことです。変化する:
public int i = 10;
に
int i = 10;
i
メソッドのローカル変数ですmain
。ローカル変数にはスコープがありませんpublic, private, protected
。フィールドメンバーのみがそれらを持つことができます。したがって、変数public
の前にある修飾子を削除します。i
public int i = 10; //これによりエラーが発生します
次のようなスコープでローカル変数を宣言することはできませんpublic or private
に変更しint i=10;
ます。
ありがとう