Java 将数组初始化为类定义

Java 将数组初始化为类定义,java,arrays,class,Java,Arrays,Class,所以,我正在做一个编程作业,这个作业是写一个程序,它将打印一个给定月份和年份的日历。我编写这个类是为了跟踪一周中某一天的名称(Mon、Tues、Wed等),我尝试给它三个参数:一天的名称、一个字符串、一个int索引,以引用第三个,一个所有工作日的数组。因此,我的开场白代码如下: public class Day { private String weekDay; private String[] weekDays; private int dayIndex; weekDays = new S

所以,我正在做一个编程作业,这个作业是写一个程序,它将打印一个给定月份和年份的日历。我编写这个类是为了跟踪一周中某一天的名称(Mon、Tues、Wed等),我尝试给它三个参数:一天的名称、一个字符串、一个int索引,以引用第三个,一个所有工作日的数组。因此,我的开场白代码如下:

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";`
尽管我的数组初始化语法正确,但尝试执行此操作时仍会出错。我猜这和初始化类定义中的数组有什么关系

我的教授建议的原始设计没有索引,只有
weekDay
weekDay[]
变量。我根本不确定数组的目的是什么,所以我想我应该使用一个索引,以数字方式记录当天的情况。显然,它不起作用。第一个问题是:我上面的解决方案有什么问题,第二个问题是:有人知道只有这两个参数的日间课程的初衷是什么吗?日间课程的想法是帮助我们弄清楚一年中某个月的某一周的哪一天开始,但我不确定如何开始

谢谢。如果我违反了礼仪,很抱歉。

你为什么不试试:

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

数组是基于零的,因此当您尝试分配最后一个
字符串时,从
1
开始而不是从
0
开始将产生
ArrayIndexOutOfBoundsException

weekDays[7] = "Saturday";`
此外,非声明性语句需要在方法、构造函数或静态初始值设定项中,而不是在类块中

您可以声明您的
工作日
以包含以下值,而不是单独指定值:

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

这种方法不需要您指定数组索引值。

您会遇到什么错误?我不是java,但您的数组不应该从0开始吗

weekDays[0] = "Sunday";

别忘了在Java中数组是从0(而不是1)建立索引的。在7之前访问工作日会抛出一个IndexOutOfRangeExceptionOkay,我将尝试最后一个声明解决方案,看看这是否有效。这正是我想要实现的目标。谢谢希望以后我不会再遇到问题。是的,那不是我的问题。我想我知道了。酷,有两种算法可以用日期来确定一周中的哪一天。见参考资料: