假設你創建了一個名爲Album的類和一個名爲Song的類。您希望Album對象能夠使用歌曲對象中存儲的字段(例如歌曲的文件大小或運行時)。你需要做些什麼才能讓它發生?如何讓對象使用存儲在另一個對象中的字段?
我試過改變我的領域內的歌曲公衆而不是私人,但沒有奏效。說實話,我是OOP的新手,我想我在這裏忽略了一些非常重要的東西。
假設你創建了一個名爲Album的類和一個名爲Song的類。您希望Album對象能夠使用歌曲對象中存儲的字段(例如歌曲的文件大小或運行時)。你需要做些什麼才能讓它發生?如何讓對象使用存儲在另一個對象中的字段?
我試過改變我的領域內的歌曲公衆而不是私人,但沒有奏效。說實話,我是OOP的新手,我想我在這裏忽略了一些非常重要的東西。
領域必須是私人 這就是爲什麼你可以創建存取 getter和setter
見例如:
Adding Setter and Getter Methods
爲了使託管bean的國家訪問,你需要添加二傳手以及該狀態的getter方法。 一旦添加了setter和getter方法,bean就完成了。最終的代碼如下所示:
public class Printer {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
方式三:
一般來說,我更喜歡讓物體儘可能地「傾向於自己編織」。爲此,如果有意義的話,我總是會嘗試處理擁有它的類中的數據。在這種情況下,它是有道理的相冊將樂曲數據組合成一些像樣的形式,所以我建議用干將在歌曲類,以提供訪問,例如:
public int getFileSize(){
return fileSize;
}
public String getName(){
return name;
}
然後專輯可以把這些一起然而,它喜歡。
首先,一個專輯將包含一個歌曲列表。
例如:
public class Album
{
private List <Song> songs;
public Album()
{
songs = new ArrayList <Song>();
}
}
宋將具有公共方法如getName()
和getLength()
,這將允許一個Album
對象來訪問它們。
例如:
public int totalLength()
{
int length = 0;
for (Song song : songs)
length += song.getLength();
return length;
}
您可以發佈您'Album'和'Song'類?向您展示實際代碼的情況會更容易一些。 – matt 2014-10-29 13:17:11
在這種情況下,繼承可以像你想要的那樣工作。 – Frunk 2014-10-29 13:17:32
@Frunk如果您對此有所瞭解,這將有所幫助。很明顯,我們不希望歌曲繼承自專輯(因爲歌曲不是專輯類型),所以你在這裏意味着什麼? – 2014-10-29 13:26:32