2017-08-14 23 views
-5

静的メソッド内で静的変数を宣言すると、エラー(コンパイル時エラー)が発生します。 私のコードはここにある: -静的変数内部の静的メソッド

public class MainStatic { 

    public static void main(String[] args) { 
     System.out.println("Value of static variable is"+print(10));  
    } 
    public static void print(int number) { 
     static int x = number; 
     ++x; 
     System.out.println(x); 
    } 
} 

私のように、コンパイル時エラーを取得しています: - 「パラメータx修飾子が正しくありません。唯一の最終が許可されています」。 静的メソッドはクラスのインスタンスに依存しないため、静的メソッド内で静的変数を宣言できないのはなぜですか? しかし、私はメソッドのクラスの中で変数を宣言すればアクセスできますか?

+0

静的にする必要はありません。あなたは ? –

+1

スコープ修飾子( 'static'、' public'など)は利用できません。スコープは常にメソッドです。 –

+0

あなたの質問は何ですか? –

答えて

0

静的変数はクラスに属しており、変数のアクセス修飾子によって許可されているすべての人が変更できます。ローカルメソッド変数は、メソッド内(およびメソッド実行中)にのみ存在し、このメソッドの外部にいる誰からもアクセスできません。それは単に意味をなさない。

+1

ありがとう@ジャック・フリンプ –

3

ローカル変数は、呼び出し時にのみ存在します。 Staticはそれらに影響を及ぼさない(できない)。

+0

私はそれが正しく理解している場合: - 静的変数は、メソッドの呼び出し時にはどの役割も果たさず、グローバル変数としてのみ影響を受けます。 –

+0

ローカル変数は、* class *との関係も、そのインスタンスも存在するかどうかは関係ありません。メソッドが実行されているときは、そのライフは完全に含まれています。クラスについて心配する必要はありません。その幸運なインスタンス変数。 – Kayaman

+0

ありがとう@カヤマン –

関連する問題