【发布时间】:2015-12-31 10:35:11
【问题描述】:
我正在尝试完成一项 BlueJ for uni 的作业,但我在第一个障碍中遇到了障碍。
在赋值中,我们得到一个类,以及该类的构造函数、方法和参数的名称。我们不允许更改这些,因为这些作业部分由测试单元(或类似的东西)标记。
这个类的构造函数之一是
public class PlayList
{
public PlayList(String name, ArrayList<Track> tracks) {
}
我已经(部分)完成了它
public class PlayList
{
private String listName;
private ArrayList<Track> listTracks = new ArrayList<Track>();
/**
* Constructs a playlist with a title and an ArrayList of tracks
*
* @param name The name of the playlist
* @param tracks An ArrayList of tracks in the playlist
*/
public PlayList(String name, ArrayList<Track> tracks) {
listName = name;
//I really don't know what to do with the tracks parameter yet
}
好的,所以,我从这个问题 (How do I enter parameters for an ArrayList in BlueJ?) 中知道,我必须创建一个 ArrayList 的实例才能将其作为参数传递给 BlueJ。
我不明白的是为什么 - 为什么他们使用ArrayList<Track> 作为构造函数的参数?这样做有什么好处?
(我认为这样做肯定有好处(如果没有功能,一开始就不存在),但我不明白它是什么 ,如果有人可以向我解释,我将不胜感激。)
【问题讨论】:
-
很清楚。如果您有曲目列表,您可以通过将名称和列表传递给
Playlist来创建播放列表。如果您只传递名称,则必须单独添加曲目,如果您已经拥有要包含的曲目列表,则这可能是不必要的额外代码。 -
播放列表是要播放的曲目列表和名称。所以在构建 PlayList 时传递名称和要播放的曲目列表是很自然的。它应该是 List
-
@Kayaman 但是不能通过创建曲目然后使用
tracks.add(track1)将它们添加到播放列表来实现相同的目的吗? -
@Prussan 当然。但是,除非您通过代码行获得报酬,否则您可能不应该编写过于冗长的代码。
标签: java arraylist parameters constructor bluej