将数组初始化为类定义

时间:2013-02-23 23:08:14

标签: java arrays class

所以,我正在做一个编程任务,并且编写的是编写一个程序,用于打印给定月份和年份的日历。我正在写课程以跟踪星期几的名称(周一,周二,周三等),我正在尝试给它3个参数:当天的名字,一个字符串,一个int index,引用第三个,所有工作日的数组。因此,我的开场代码是:

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";`

尝试执行此操作时遇到错误,即使我有正确的Array初始化语法。我猜测这首先在类定义中首先初始化数组有什么用呢?

我教授建议的原始设计没有索引,只有weekDayweekDays[]变量。我根本不确定阵列的用途是什么,所以我想我会使用索引并以数字方式跟踪那一天。显然它不起作用。所以一:上面我的解决方案出了什么问题,两个:有没有人知道Day类的初衷是什么,只有这两个参数?每天的想法课程将有助于弄清楚特定年份的特定月份的哪一天开始,但我不确定如何。

感谢。对不起,如果我违反了礼节。

3 个答案:

答案 0 :(得分:1)

你得到了什么错误?我不是java,但你的数组不应该从0开始吗?

weekDays[0] = "Sunday";

答案 1 :(得分:0)

你为什么不试试:

private String[] weekDays =  new String[] {"Sunday", "Monday", 
                             "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

答案 2 :(得分:0)

数组从零开始,因此当您尝试分配最后一个1时,从0开始而不是ArrayIndexOutOfBoundsException会产生String

weekDays[7] = "Saturday";`

此外,非声明性语句需要在方法,构造函数或静态初始化器中,而不是在类块中。

您可以声明weekdays包含值,而不是单独指定值:

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

此方法不要求您指定数组索引值。