使用java设计一个MyMedia(String mediaName, float price, String press, String artist)类,其中包含MyBook(String bookISBN,String editor)、MyCd(String cdISRC)及MyTape(String tapeISRC)三个子类。按照类的设计模式,完成他们的插入、删除、查找以及查找全部的功能。MyMedia类中有并且还拥有一个interfaceMedias接口和一个MediaTest测试类,interfaceMedias接口的方法有public int addMedia(Vector medias,MyMedia tempMedia); public int deleteMedia(Vector medias); public MyMedia findMedia(Vector medias,String artist); public void printlnMedia(Vector medias); public String input(); 并且MediaTest测试类实现了interfaceMedias接口
时间: 2024-02-12 22:08:20 浏览: 23
好的,我理解了你的问题。你需要我帮你设计一个MyMedia类,包含三个子类MyBook、MyCd和MyTape,并且还需要一个interfaceMedias接口和一个MediaTest测试类,实现插入、删除、查找和查找全部的功能。
首先,我们可以定义一个MyMedia类,其中包含媒体名称、价格、出版社和艺术家等属性。代码如下:
```
public class MyMedia {
private String mediaName;
private float price;
private String press;
private String artist;
public MyMedia(String mediaName, float price, String press, String artist) {
this.mediaName = mediaName;
this.price = price;
this.press = press;
this.artist = artist;
}
public String getMediaName() {
return mediaName;
}
public void setMediaName(String mediaName) {
this.mediaName = mediaName;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
}
```
然后,我们可以定义三个子类MyBook、MyCd和MyTape,分别继承自MyMedia类,并增加自己的属性。代码如下:
```
public class MyBook extends MyMedia {
private String bookISBN;
private String editor;
public MyBook(String mediaName, float price, String press, String artist, String bookISBN, String editor) {
super(mediaName, price, press, artist);
this.bookISBN = bookISBN;
this.editor = editor;
}
public String getBookISBN() {
return bookISBN;
}
public void setBookISBN(String bookISBN) {
this.bookISBN = bookISBN;
}
public String getEditor() {
return editor;
}
public void setEditor(String editor) {
this.editor = editor;
}
}
public class MyCd extends MyMedia {
private String cdISRC;
public MyCd(String mediaName, float price, String press, String artist, String cdISRC) {
super(mediaName, price, press, artist);
this.cdISRC = cdISRC;
}
public String getCdISRC() {
return cdISRC;
}
public void setCdISRC(String cdISRC) {
this.cdISRC = cdISRC;
}
}
public class MyTape extends MyMedia {
private String tapeISRC;
public MyTape(String mediaName, float price, String press, String artist, String tapeISRC) {
super(mediaName, price, press, artist);
this.tapeISRC = tapeISRC;
}
public String getTapeISRC() {
return tapeISRC;
}
public void setTapeISRC(String tapeISRC) {
this.tapeISRC = tapeISRC;
}
}
```
接着,我们定义一个interfaceMedias接口,并在其中添加插入、删除、查找和查找全部的方法。代码如下:
```
import java.util.Vector;
public interface interfaceMedias {
public int addMedia(Vector medias, MyMedia tempMedia);
public int deleteMedia(Vector medias);
public MyMedia findMedia(Vector medias, String artist);
public void printlnMedia(Vector medias);
public String input();
}
```
最后,我们定义一个MediaTest测试类,实现interfaceMedias接口,并在其中实现插入、删除、查找和查找全部的功能。代码如下:
```
import java.util.*;
public class MediaTest implements interfaceMedias {
public int addMedia(Vector medias, MyMedia tempMedia) {
medias.add(tempMedia);
return 1;
}
public int deleteMedia(Vector medias) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入要删除的媒体名称:");
String mediaName = scan.nextLine();
for (int i = 0; i < medias.size(); i++) {
MyMedia media = (MyMedia) medias.get(i);
if (media.getMediaName().equals(mediaName)) {
medias.remove(i);
return 1;
}
}
return 0;
}
public MyMedia findMedia(Vector medias, String artist) {
for (int i = 0; i < medias.size(); i++) {
MyMedia media = (MyMedia) medias.get(i);
if (media.getArtist().equals(artist)) {
return media;
}
}
return null;
}
public void printlnMedia(Vector medias) {
for (int i = 0; i < medias.size(); i++) {
MyMedia media = (MyMedia) medias.get(i);
System.out.println("媒体名称:" + media.getMediaName() + ",价格:" + media.getPrice() + ",出版社:" + media.getPress() + ",艺术家:" + media.getArtist());
}
}
public String input() {
Scanner scan = new Scanner(System.in);
System.out.println("请输入媒体名称:");
String mediaName = scan.nextLine();
System.out.println("请输入价格:");
float price = scan.nextFloat();
scan.nextLine();
System.out.println("请输入出版社:");
String press = scan.nextLine();
System.out.println("请输入艺术家:");
String artist = scan.nextLine();
return mediaName + "," + price + "," + press + "," + artist;
}
public static void main(String[] args) {
Vector medias = new Vector();
MediaTest test = new MediaTest();
int choice;
while (true) {
System.out.println("请选择要进行的操作:");
System.out.println("1、插入媒体");
System.out.println("2、删除媒体");
System.out.println("3、查找媒体");
System.out.println("4、查找全部媒体");
System.out.println("5、退出");
Scanner scan = new Scanner(System.in);
choice = scan.nextInt();
scan.nextLine();
if (choice == 1) {
String inputStr = test.input();
String[] temp = inputStr.split(",");
MyMedia tempMedia = new MyMedia(temp[0], Float.parseFloat(temp[1]), temp[2], temp[3]);
test.addMedia(medias, tempMedia);
} else if (choice == 2) {
test.deleteMedia(medias);
} else if (choice == 3) {
System.out.println("请输入要查找的艺术家:");
String artist = scan.nextLine();
MyMedia media = test.findMedia(medias, artist);
if (media == null) {
System.out.println("未找到该艺术家的媒体!");
} else {
System.out.println("已找到该艺术家的媒体,媒体名称:" + media.getMediaName() + ",价格:" + media.getPrice() + ",出版社:" + media.getPress() + ",艺术家:" + media.getArtist());
}
} else if (choice == 4) {
test.printlnMedia(medias);
} else if (choice == 5) {
break;
} else {
System.out.println("输入错误,请重新输入!");
}
}
}
}
```
以上就是完整的代码实现。你可以根据自己的需要进行调整和修改。