I need to develop a class hierarchy for my media collection that will be helpful
ID: 3544834 • Letter: I
Question
I need to develop a class hierarchy for my media collection that will be helpful in designing the database. Consider: Media the top class and off of media I have Audio, Artist, and Video. Audio and Video go into Artist which goes into Media. Now off of Audio I have the files Cassette and CD. Off of Video I have DVD and VHS. In each class I have certain methods I have created. I am having a problem running these together. If someone could create a main method to run my programs and tell me if I have done anything wrong here. Basically suppose to ask the user what they have, DVD, CD, etc, and then they type in the artist name etc and its suppose to ask them till they want to see their displayed media depending on what they put in when asked. I have done everything except artist, which isn't done. If someone could help me I would appreciate it. I mainly need a main method class called something like MediaRunner to run all of these.
Example of Questions to prompt user.
Enter 1 to CREATE DVD
Enter 2 to CREATE CD
Enter 3 to CREATE VHS
Enter 4 to CREATE Casette
Enter 5 for DISPLAY all Media
Enter 6 for DISPLAY all Data for a particular Media
Enter 7 to DISPLAY data of major artist of a particular media
Enter 8 to PLAY a Particular Media
Enter 9 to get the Number of Plays of a particular Media
Enter 10 to EXIT
Enter your choice
---------------------------------------
Depending on users input, will be what DISPLAY all MEDIA would simply print out. If nothing has be inputs they it should say something like nothing in media.
Below is my code. Thanks
My Media code.
public abstract class Media
{
private String title;
private String majorArtist;
private int playingTime;
private int numPlays;
public Media( String t, String ma, int pt, int np)
{
title = t;
majorArtist = ma;
playingTime = pt;
numPlays = np;
}
public String getTitle()
{ return title; }
public String getMajorArtist()
{ return majorArtist; }
public int getPlayTime ()
{ return playingTime; }
public int getNumPlay ()
{ return numPlays; }
public abstract void playMedia();
public void incrementPlays()
{
numPlays = numPlays++;
}
public String toString()
{
String str = "Title: "+title+ "Major Artist: "+majorArtist+ "Playing Time: "+playingTime+ " number of plays: "+numPlays;
return str;
}
}
My artist code. Need help here.
public class Artist {
private String lastName;
private String firstName;
private Date dateOfBirth ;
private String hash;
private String url;
public Artist(String f, String l, Date dob, String h, String u)
{
firstName = f;
lastName = l;
dateOfBirth = dob;
hash = h;
url = u;
}
// setters
public void setDateOfBirth(Date newDOB)
{ dateOfBirth = newDOB; }
public void setfirstName(String f)
{ firstName = f; }
public void setlastName(String l)
{ lastName = l; }
public void setHash(String h)
{ hash = h; }
public void setUrl(String u)
{ url = u; }
//getters
public String getfirstName()
{ return firstName; }
public String getlastName()
{ return lastName; }
public Date dateofBIRTH()
{ return dateOfBirth; }
public String hashTag()
{ return hash; }
public String urlSite()
{ return url; }
// to string statement
public String toString()
{
return ("First Name: "+firstName + "Last Name:"+lastName+ "Date of Birth: "+
dateOfBirth+ " Twitter: "+hash+" Website: "+url);
}
}
Explanation / Answer
This is what your main class will look like. It's very big, so I didn't write it completely, but I think you will get the idea from this template. Please rate. Let me know if you have any questions.
import java.io.*;
class Mainclass
{
public static void main(String[] args)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i;
System.out.println("Enter 1 to CREATE DVD");
System.out.println("Enter 2 to CREATE CD");
System.out.println("Enter 3 to CREATE VHS");
System.out.println("Enter 4 to CREATE Casette");
System.out.println("Enter 5 for DISPLAY all Media");
System.out.println("Enter 6 for DISPLAY all Data for a particular Media");
System.out.println("Enter 7 to DISPLAY data of major artist of a particular media");
System.out.println("Enter 8 to PLAY a Particular Media");
System.out.println("Enter 9 to get the Number of Plays of a particular Media");
System.out.println("Enter 10 to EXIT");
System.out.println("Enter your choice");
i = Integer.parseInt(br.readLine());
if (i==1)
{
DVD obj = new DVD();
System.out.println("Enter numFeature");
setnumTrack(br.readLine());
System.out.println("Enter tvForm");
setTVForm (br.readLine());
System.out.println("Enter numSound");
setnumSound (Integer.parseInt(br.readLine()));
}
if(i==2)
{
.
.
.
}
.
.
.
}
public abstract class Media
{
private String title;
private String majorArtist;
private int playingTime;
private int numPlays;
public Media(String t, String ma, int pt, int np)
{
title = t;
majorArtist = ma;
playingTime = pt;
numPlays = np;
}
public String getTitle()
{ return title; }
public String getMajorArtist()
{ return majorArtist; }
public int getPlayTime ()
{ return playingTime; }
public int getNumPlay ()
{ return numPlays; }
public abstract void playMedia();
public void incrementPlays()
{
numPlays = numPlays++;
}
public String toString()
{
String str = "Title: "+title+ "Major Artist: "+majorArtist+ "Playing Time: "+playingTime+ " number of plays: "+numPlays;
return str;
}
}
public class Artist {
private String lastName;
private String firstName;
private Date dateOfBirth ;
private String hash;
private String url;
public Artist(String f, String l, Date dob, String h, String u)
{
firstName = f;
lastName = l;
dateOfBirth = dob;
hash = h;
url = u;
}
// setters
public void setDateOfBirth(Date newDOB)
{ dateOfBirth = newDOB; }
public void setfirstName(String f)
{ firstName = f; }
public void setlastName(String l)
{ lastName = l; }
public void setHash(String h)
{ hash = h; }
public void setUrl(String u)
{ url = u; }
//getters
public String getfirstName()
{ return firstName; }
public String getlastName()
{ return lastName; }
public Date dateofBIRTH()
{ return dateOfBirth; }
public String hashTag()
{ return hash; }
public String urlSite()
{ return url; }
// to string statement
public String toString()
{
return ("First Name: "+firstName + "Last Name:"+lastName+ "Date of Birth: "+
dateOfBirth+ " Twitter: "+hash+" Website: "+url);
}
}
public abstract class Audio extends Media
{
private static int numMember;
private String producer;
private Artist[] groupMembers;
public Audio(String t, String ma, int pt, int np, int nm, String p, Artist[] gm)
{
super(t, ma, pt, np);
numMember = nm;
producer = p;
groupMembers = gm;
}
public void setNumMem(int numMem)
{ numMember = numMem; }
public void setProd(String prod)
{ producer = prod;}
public void setGroupMem(Artist groupMem, int i)
{ groupMembers[i] = groupMem; }
public int getNumMem()
{ return numMember; }
public String getProd()
{ return producer; }
public Artist[] getGroupMem()
{ return groupMembers; }
public String toString()
{
return (" number of members: " +numMember+ " producer: "+producer+"group members: "+groupMembers);
}
}
public abstract class Video extends Media
{
private static int numActor;
private String director;
private int rating;
private Artist[] supportActor;
public Video(String t, String ma, int pt, int np, int na, String d, int r, Artist[] sa)
{
super(t, ma, pt, np);
numActor = na;
director = d;
rating = r;
supportActor = sa;
}
public void setNumMem(int numAct)
{ numActor = numAct; }
public void setDirect(String direct)
{ director = direct;}
public void setRate(int rate)
{ rating = rate; }
public void setSupportAct(Artist supportAct, int i)
{ supportActor[i] = supportAct; }
public int getNumAct()
{ return numActor; }
public String getDirect()
{ return director; }
public int getRate()
{ return rating;}
public Artist[] getSupportAct()
{ return supportActor; }
public String toString()
{
return (" number of actors: " +numActor+ " director: "
+director+ " rating: "+rating+"supporting actor: "+supportActor);
}
}
public class Cassette extends Audio
{
private static int numSongs;
private Audio[] songs;
public Cassette(String t, String ma, int pt, int np,int nm, String p, Artist[] gm, int ns, Audio[] sg)
{
super(t, ma, pt, np, nm, p, gm);
numSongs = ns;
songs = sg;
}
public void playMedia()
{
System.out.println("Now playing: "+getTitle()+ "play time: "+getPlayTime());
}
public void setnumTrack(int numSong)
{ numSongs = numSong; }
public void setSongs(Audio song, int i)
{ songs[i] = song; }
public int getNumSong()
{ return numSongs; }
public Audio[] getSong()
{ return songs; }
public String toString()
{
super.toString();
return(" number of songs: " +numSongs+"songs: "+songs);
}
}
public class CD extends Audio
{
private static int numTracks;
private Audio[] tracks;
public CD(String t, String ma, int pt, int np, int nm, String p, Artist[] gm , int nt, Audio[] trk)
{
super(t, ma, pt, np,nm, p, gm);
numTracks = nt;
tracks = trk;
}
public void playMedia()
{
System.out.println("Now playing: "+getTitle()+ "play time: "+getPlayTime());
}
public void setnumTrack(int numTrack)
{ numTracks = numTrack; }
public void setTrack(Audio track, int i)
{ tracks[i] = track; }
public int getNumTrack()
{ return numTracks; }
public Audio[] track()
{ return tracks; }
public String toString()
{
super.toString();
return (" number of tracks: " +numTracks+"tracks: "+tracks);
}
}
public class DVD extends Video
{
private static int numFeatures;
private String tvFormat;
private static int numSounds;
private Video[] specialFeature;
private Video[] soundOptions;
public DVD(String t, String ma, int pt, int np, int na, String d, int r, Artist[] sa, int nf, String tf, int ns, Video[] sf, Video[] so)
{
super(t, ma, pt, np, na, d, r, sa);
numFeatures = nf;
tvFormat = tf;
numSounds = ns;
specialFeature = sf;
soundOptions = so;
}
// play media
public void playMedia()
{
System.out.println("Title: "+getTitle()+ "play time: "+getPlayTime()+"rating: "+getRate());
}
// setter
public void setnumTrack(int numFeature)
{ numFeatures = numFeature; }
public void setTVForm (String tvForm)
{ tvFormat = tvForm; }
public void setnumSound (int numSound)
{ numSounds = numSound; }
public void setSpecialFeat(Video specialFeat, int i)
{ specialFeature[i] = specialFeat; }
public void setSoundOption(Video soundOption, int i)
{ soundOptions[i] = soundOption; }
// getter
public int getNumFeature()
{ return numFeatures; }
public String getTvForm()
{ return tvFormat; }
public int getNumSound ()
{ return numSounds; }
public Video[] getSepcialFeat()
{ return specialFeature; }
public Video[] getSoundOption()
{ return soundOptions; }
// to string
public String toString()
{
super.toString();
return (" number of features: " +numFeatures+ "special feature: "+specialFeature+ " TV format: "+ tvFormat
+ " number of sounds: "+numSounds+"sounds option: "+soundOptions);
}
}
public class VHS extends Video
{
private static int numTrailers;
private Video[] trailers;
public VHS(String t, String ma, int pt, int np, int na, String d, int r, Artist[] sa, int nt, Video[] trl)
{
super(t, ma, pt, np, na, d, r, sa);
numTrailers = nt;
trailers = trl;
}
public void playMedia()
{
System.out.println("Title: "+getTitle()+ "play time: "+getPlayTime()+"rating: "+getRate());
}
public void setnumTrack(int numTrailer)
{ numTrailers = numTrailer; }
public void setTrailer(Video trail, int i)
{ trailers[i] = trail; }
public int getNumTrailer()
{ return numTrailers; }
public Video[] getTrail()
{ return trailers; }
public String toString()
{
super.toString();
return (" number of trailers: " +numTrailers + "trailers: "+trailers);
}
}