【发布时间】:2016-11-30 22:23:33
【问题描述】:
我的作业提示状态:
使用以下实例变量创建一个 MP3 类:艺术家、歌曲、专辑、曲目长度(以秒为单位)。提供一个具有四个参数、get/set 方法和一个 toString 的构造函数。方法。 toString 方法应该返回一个带有清晰标记的 MP3 数据的字符串。轨道长度应在 toString 方法中转换为分钟和秒。例如,265 秒将显示为 4:25。注意 MP3 不能有零或负的轨道长度。对无效的曲目长度使用一分钟的默认值。
我对这些说明的最后一句话感到困惑。谁能给我解释一下?
到目前为止我有这个代码:
public class MP3 {
private String artist;
private String song;
private String album;
private int trackLength;
public MP3(String artistName, String songName, String albumName, int lengthOfTrack) {
setArtist(artistName);
setSong(songName);
setAlbum(albumName);
setLength(lengthOfTrack);
}
public void setArtist(String artistName) {
artist = artistName;
}
public String getArtist() {
return artist;
}
public void setSong(String songName) {
song = songName;
}
public String getSong() {
return song;
}
public void setAlbum(String albumName) {
album = albumName;
}
public String getAlbum() {
return album;
}
public void setLength(int lengthOfTrack) {
trackLength = lengthOfTrack;
if(getLength() <= 0) {
setLength(60);
}
}
public int getLength() {
return trackLength;
}
public String toString() {
return String.format("%s, %s, %s, %d : %d",
getArtist(), getSong(), getAlbum(),
getLength() / 60, getLength() - (getLength() / 60) * 60);
}
}
【问题讨论】:
-
我的意思是,您可以非递归地执行此操作,但这样做没有问题。
-
好吧,鉴于您的代码,我想您已经完全理解了。为什么你认为你没有?
-
我将其理解为“如果他们给你的曲目长度是垃圾(例如 -0:37、0:00 或哈哈),请使用 1:00”。
-
哦等等,你想使用
if(lengthOfTrack <= 0)而不是if(getLength() <= 0)。 -
@EliSadoff
getLength()返回trackLength
标签: java