0
我試圖爲我的音樂播放器製作playcount方法。試圖讓我的playCount方法在音樂播放器中工作
在我的跟蹤方法中,我將一個字段定義爲playCount,然後創建一個增加它的方法。但是當我演奏一首歌的時候,我似乎無法在我的主課中調用它。
public class Track
{
// The artist.
private String artist;
// The track's title.
private String title;
// Where the track is stored.
private String filename;
public int playCount;
/**
* Constructor for objects of class Track.
* @param artist The track's artist.
* @param title The track's title.
* @param filename The track file.
*/
public Track(String artist, String title, String filename)
{
setDetails(artist, title, filename);
playCount = 0;
}
public void resetCount(){
playCount = 0;
}
public void incrementCount(){
playCount++;
}
這裏是我的主類省略了一些代碼。
public class MusicOrganizer
{
// An ArrayList for storing music tracks.
private ArrayList<Track> tracks;
// A player for the music tracks.
private MusicPlayer player;
// A reader that can read music files and load them as tracks.
private TrackReader reader;
/**
* Create a MusicOrganizer
*/
public MusicOrganizer()
{
tracks = new ArrayList<Track>();
player = new MusicPlayer();
reader = new TrackReader();
readLibrary("audio");
System.out.println("Music library loaded. " + getNumberOfTracks() + " tracks.");
System.out.println();
}
/**
* Add a track file to the collection.
* @param filename The file name of the track to be added.
*/
public void addFile(String filename)
{
tracks.add(new Track(filename));
}
/**
* Add a track to the collection.
* @param track The track to be added.
*/
public void addTrack(Track track)
{
tracks.add(track);
}
/**
* Play a track in the collection.
* @param index The index of the track to be played.
*/
public void playTrack(int index)
{
if(indexValid(index)) {
Track.incrementCount(); //This is where my problem is. I just want to call the increment method so that it adds one.
stopPlaying();
Track track = tracks.get(index);
player.startPlaying(track.getFilename());
System.out.println("Now playing: " + track.getArtist() + " - " + track.getTitle());
}
}
我所得到的是一個錯誤「非靜態方法incrementCount()不能從靜態上下文中引用。我不明白這一點,我應該如何解決它。 任何及所有的幫助感激!
這是一個非靜態方法,你需要調用它的一個實例。你需要嘗試調用,經過'軌道的軌道=軌道。 get(index);'和ne編輯爲像'track.incrementCount();'調用。 – 2014-10-19 21:35:52
@ Rp-那創造了奇蹟!你能解釋一下爲什麼我需要給它打電話嗎? – Gurkang 2014-10-19 21:38:03