2017-06-09 9 views
0

私は私のメインクラスの次の静的メソッドがあります:私は、私はクラスの下位作成しています別の方法から月のアレイにアクセスしたいJavaのメソッドから静的配列にアクセスしますか?

static int daysMonth(int Y, int M){ 
    int [] month = {31, 28+(Y%4==0?1:0), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
    return month[M-1]; 
} 

を。私はM-1指数の正確な値を取るために変数D(日数を表す)を欲しがっていますが、私はそれを正しくアクセスする方法がわかりません...これはおそらく非常に簡単なことですが、どのようにしたらいいのか思い出してください。再読み込みすべきもの(Javaの配列やスムースに関するもの)の推奨は大歓迎です!

+1

月は、ローカル変数であり、静的ではありません。他のメソッドでそのメソッドにアクセスしたい場合は、クラスのフィールドとしてメソッドの外に宣言するか、必要な場所にローカル変数を渡す必要があります。さらに読む:https://stackoverflow.com/questions/20671008/what-is-the-difference-between-a-local-variable-an-instance-field-an-input-par –

+0

私はあなたがメソッドを他のクラスから渡した場合は、別のクラスから渡されたMの値に基づいて変数Dに値を割り当てる必要があります。ここでは、メソッドをpublicにして、クラスをインポートしてメソッドを使用することができます。 –

+0

そのjava。それを自分のクラスにする。インスタンスをメソッドに渡します。 – JacksOnF1re

答えて

0

メソッドの外側に配列を宣言すると、クラス全体で使用できます。

static int [] month = null; 

static int daysMonth(int Y, int M){ 
    month = {31, 28+(Y%4==0?1:0), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
    return month[M-1]; 
} 
+0

だから私はメソッドの外に置いて、私はこの方法でアクセスする必要がありますか? D =月[M-1]; ? –

+0

はいできます。静的演算子をどこにでも使用するのはベストプラクティスではないので、コンストラクタとカプセル化の仕組みを読むことをお勧めします。 –

関連する問題