所以,我正在做一个编程任务,并且编写的是编写一个程序,用于打印给定月份和年份的日历。我正在写课程以跟踪星期几的名称(周一,周二,周三等),我正在尝试给它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初始化语法。我猜测这首先在类定义中首先初始化数组有什么用呢?
我教授建议的原始设计没有索引,只有weekDay
和weekDays[]
变量。我根本不确定阵列的用途是什么,所以我想我会使用索引并以数字方式跟踪那一天。显然它不起作用。所以一:上面我的解决方案出了什么问题,两个:有没有人知道Day类的初衷是什么,只有这两个参数?每天的想法课程将有助于弄清楚特定年份的特定月份的哪一天开始,但我不确定如何。
感谢。对不起,如果我违反了礼节。
答案 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", ... };
此方法不要求您指定数组索引值。