-1

所以,我正在做一个编程任务,任务是编写一个程序来打印给定月份和年份的日历。我正在编写类来跟踪一周中的某一天(周一、周二、周三等)的名称,并且我试图给它 3 个参数:当天的名称、一个字符串、一个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";`

尝试执行此操作时出现错误,即使我的数组初始化语法正确。我猜这首先与类定义中的数组初始化有关吗?

我的教授建议的原始设计没有索引,只有weekDayweekDays[]变量。我根本不确定数组的用途,所以我想我会使用索引并以这种方式以数字方式跟踪日期。显然它不起作用。所以一:我上面的解决方案有什么问题,二:有谁知道 Day 类的初衷是用这两个参数吗?每日课程的想法是帮助确定特定年份的特定月份从一周中的哪一天开始,但我不确定如何。

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

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

数组是从零开始的,因此当您尝试分配 last 时,从而1不是0会产生一个:ArrayIndexOutOfBoundsExceptionString

weekDays[7] = "Saturday";`

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

您可以声明weekdays包含这些值,而不是单独分配值:

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

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

于 2013-02-23T23:11:15.563 回答