【发布时间】:2023-03-05 21:30:01
【问题描述】:
我想要达到的目标是让用户输入电影的名称以及发行日期。为此,我设置了单独的课程。
Movie cameronsMovie = new Movie("Sin City", 2005);
Movie [] movieList = new Movie [9];
movieList[0] = cameronsMovie;
for (int i = 0; i < movieList.length; i++) {
System.out.print("Please enter a movie Title: ");
String title = GetInput.readLine(); //Get movieTitle
System.out.print("Please enter the year it was released: ");
int releaseDate = GetInput.readInt(); //Get year
// creating a new ojbect
Movie userMovie = new Movie(title, releaseDate); /* calls the
constructor from Movie class
*/
movieList[i] = userMovie;
}
System.out.println(movieList.toString());
这是我用来调用其他类的代码,我遇到的问题是我的最后一行代码打印出 [LMovie;@2a139a55
的结果在我的类文件中我有这个代码
public String toString() {
String temp = new String();
temp = "Movie title: " + getTitle() + "\nYear of Release: " +
getYear();
return(temp);
}
返回我的字符串。我的 toString() 的设置方式是否有问题,或者我在其他地方犯了错误
【问题讨论】:
-
使用
Arrays.toString(movieList) -
永远不要调用你的数组a List
-
您的意图是打印带有发行日期的电影名称,所以这应该在对象级别完成。您的 toString() 方法应该在 Movie 类中。并且您应该在 for 循环中对其进行迭代。但是在这里,您只是在列表级别调用 toString 方法,该方法包含电影对象列表。这样做的其他方法将由 Eran/Imran 建议
标签: java arrays for-loop output