我正在制作一本日记,其中存有日记条目列表(日记),每个条目都有标题,日期和条目。这些将由DiaryBook类添加,删除和显示。现在我只是试图通过打印字段来测试它,但它们都打印为空。我查看了类似的问题,但仍然无法解决原因。我是java新手,所以感谢任何帮助/评论。
public class DiaryBook {
ArrayList<Diary> diaryList = new ArrayList<Diary>();
static Scanner scanner = new Scanner(System.in);
public void addDiary () {
String title;
String content;
Calendar date;
String[] splitDate;
System.out.print("Entry title: ");
title = scanner.nextLine();
System.out.print("Entry for date (dd/mm/yyyy): ");
splitDate = scanner.next().split("/");
scanner.nextLine();
int day = Integer.parseInt(splitDate[0]);
int month = Integer.parseInt(splitDate[1]);
int year = Integer.parseInt(splitDate[2]);
date = new GregorianCalendar(year,month-1,day);
System.out.print("Entry: ");
content = scanner.nextLine();
Diary d = new Diary (title, date, content);
diaryList.add(d);
}
public void printDiaries() {
for (Diary x:diaryList) {
x.getTitle();
x.getDate();
x.getContent();
}
}
}
我的日记课程:
公共课日记{
String title;
Calendar date;
String content;
public Diary (String title, Calendar date, String content) {
title = this.title;
date = this.date;
content = this.content;
}
public void getTitle() {
System.out.println(title);
}
public void getDate() {
System.out.println(date);
}
public void getContent() {
System.out.println(content);
}
}
输入:
Entry title: Blah
Entry for date (dd/mm/yyyy): 22/12/1990
Entry: Something
输出:
null
null
null
感谢。
答案 0 :(得分:0)
您已将错误的值分配给错误的参数...
public Diary (String title, Calendar date, String content) {
title = this.title;
date = this.date;
content = this.content;
}
这是将实例变量的值赋给参数,这些参数没有效果......
相反,请尝试将参数分配给实例变量...
public Diary (String title, Calendar date, String content) {
this.title = title;
this.date = date;
this.content = content;
}
此外,你get
方法应该返回值,而不是打印它们......只是说......
答案 1 :(得分:0)
你正在混淆你的变量。 java中的“this”语句指的是已在类中定义的语句,而没有“this”的语句指的是参数中的语句。所以如上所述,你只需要切换它们,它打印为null,因为它们没有被声明为任何东西。