ID非公開

2022/5/15 0:26

33回答

Javaの配列について

Java | プログラミング34閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

ThanksImg質問者からのお礼コメント

理解できました!ありがとうございます! 他の回答者の皆様もありがとうございました!

お礼日時:5/16 21:54

その他の回答(2件)

0

Javaではint、Integerは「値渡し」で取り扱われます。 int[] score ={A, B, C, D, E}; と初期化した際に、 「変数A~Eの配列」 (変数A~Eを後から変更した際に、scoreの値も変わる) のではなく、 「変数A~Eの"その時の値"の配列」 (変数A~Eを後から変更しても、scoreの値は変わらない) となっているからです。 Grades11メソッドで変数A~Eに値を格納するのではなく、 配列scoreに直接値を格納しましょう。

0

Javaでは、クラスのフィールドは自動的に初期値で初期化されます。 int型の場合は、初期値は0なので、 public int A,B,C,D,E; の段階で、A等の各フィールドには0が入った状態になります。 その状態で、 public int[] score ={A, B, C, D, E}; が来るので、実質 public int[] score ={0, 0, 0, 0, 0}; となります。 その後、score配列の値を変更するコードが無いので、 maxもminも0になります。 scoreを作ったあとで、A等のフィールドを書き換えても、それはscoreの中には影響しません。