-1

それで、私はプログラミングの課題をやっています。その課題は、特定の月と年のカレンダーを印刷するプログラムを書くことです。曜日の名前 (月、火、水など) を追跡するクラスを作成しており、それに 3 つのパラメーターを与えようとしています: 曜日の名前、文字列、 int インデックス。3 番目を参照し、すべての平日の配列。私のオープニングコードはそのままです:

public class Day
{

private String weekDay;
private String[] weekDays;
private int dayIndex;

weekDays = new String[7];

weekDays[1] = "Sunday";
weekDays[2] = "Monday";
weekDays[3] = "Tuesday";
weekDays[4] = "Wednesday";
weekDays[5] = "Thursday";
weekDays[6] = "Friday";
weekDays[7] = "Saturday";`

配列の初期化の構文が正しいにもかかわらず、これを実行しようとするとエラーが発生します。これは、そもそもクラス定義での配列の初期化と関係があると思いますか?

私の教授が提案した元の設計には、インデックスがなく、変数weekDayweekDays[]変数だけがありました。配列に何が意図されているのかまったくわからなかったので、インデックスを使用してその日を数値的に追跡することにしました。明らかに機能していません。1: 上記の私の解決策の何が問題なのか、2: Day クラスの本来の意図がこれら 2 つのパラメーターだけでどうだったか知っている人はいますか? その日のクラスのアイデアは、特定の年の特定の月が何曜日に始まるかを理解するのを支援することでしたが、どうすればよいかわかりません。

ありがとう。マナー違反でしたらすみません。

4

3 に答える 3

1

どのようなエラーが発生していますか? 私はJavaではありませんが、配列は0から始まるべきではありませんか?

weekDays[0] = "Sunday";
于 2013-02-23T23:12:54.750 に答える
0

試してみませんか:

private String[] weekDays =  new String[] {"Sunday", "Monday", 
                             "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
于 2013-02-23T23:10:59.513 に答える
0

配列はゼロから始まるため、最後の を割り当てようとすると、1ではなくから開始します。0ArrayIndexOutOfBoundsExceptionString

weekDays[7] = "Saturday";`

また、非宣言ステートメントは、クラス ブロックではなく、メソッド、コンストラクター、または静的初期化子にある必要があります。

weekdays値を個別に割り当てる代わりに、値を含めるように宣言できます。

private String[] weekDays = { "Sunday", "Monday", ... };

このアプローチでは、配列のインデックス値を指定する必要はありません。

于 2013-02-23T23:11:15.563 に答える