Java Reference
In-Depth Information
Code 4.7
continued
Using Track in the
MusicOrganizer
class
public void addTrack(Track track)
{
tracks.add(track);
}
/**
* Show a list of all the tracks in the collection.
*/
public void listAllTracks()
{
System.out.println( "Track listing: " );
for (Track track : tracks) {
System.out.println(track.getDetails());
}
System.out.println();
}
/**
* 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 track = tracks.get(index);
player.startPlaying(track.getFilename());
System.out.println( "Now playing: " + track.getArtist() +
" - " + track.getTitle());
}
}
Other methods omitted.
}
While we can see that introducing a Track class has made some of the old methods slightly
more complicated, working with specialized Track objects ultimately results in a much better
structure for the program as a whole and allows us to develop the Track class to the most ap-
propriate level of detail for representing more than just music file names.
With a better structuring of track information, we can now do a much better job of searching
for tracks that meet particular criteria. For instance, if we want to find all tracks that contain the
word “love” in their title, we can do so as follows without risking mismatches on artists' names:
/**
* List all tracks containing the given search string.
* @param searchString The search string to be found.
*/
Search WWH ::




Custom Search