我有关于电脑商店的以下作业:
有几个类包括:监视器,案例,鼠标,键盘。
所有课程都有公共字段:id,name,price,quantity。
每个班级都有一些独特的领域。 所有大多数功能都是:添加,更新,删除,查找,显示列表,保存,加载文件
- 所以,首先我要创建一个名为Product的类有4个常用字段。以上课程将从Product扩展。
- 然后,我想我可能会创建一个ComputerStore类,其字段是项类型ArrayList。 items存储所有对象,这些对象是上面4个类的实例但是我不确定。
是否合理?我需要一些想法
之前,我总是将ArrayList商店仅用于一个类,如
List <String> list = new ArrayList<String>();
现在他们是多种类型。我认为它在Java中是通用的,对吧?
如果我想要更新1件商品。我必须考虑如何为他们改变信息。例如:鼠标用于某些代码,键盘用于其他代码。无论如何,谢谢大家!
答案 0 :(得分:3)
您的方法是100%合理的。
你完全走上正轨“泛型”。首先,查看官方enter link description here。
接下来,只需考虑现实世界中的数据,就像您已经在做的那样:显示器,外壳,鼠标和键盘都是产品。您的计算机商店的库存是产品列表。
提示:产品清单。
通过该教程将其与您对仿制药的了解结合在一起,您将会很高兴。
答案 1 :(得分:2)
你可以使用java generic.First创建一个带有超类类型产品的java集合(例如:List)。现在,您可以在类产品扩展的集合(List)中添加任何子类(监视器,键盘等)。
public class Product{
}
public class Monitor extends Product{
}
public class Keyboard extends Product{
}
List<Product> products = new ArrayList<Product>();
products.add(new Monitor());
products.add(new Keyboard());
答案 2 :(得分:1)
由于您有一个超类(Product),您可以将列表的类型设为Product,即
List<Product> list = new ArrayList<Product>();
list.add(new Mouse());
list.add(new Keyboard());
它允许你迭代它们并列出它们的名称和价格,而不需要关心这个类,但是如果你打算从列表中取出一个项目,你需要检查它的实际类型(取决于你做什么)它)。
答案 3 :(得分:0)
您可以执行以下操作
import java.util.List;
import java.util.ArrayList;
class Test{
public static void main(String... args){
List<MultiObj> multiObjs = new ArrayList();
MultiObj ob = new MultiObj(); multiObjs.add(ob);
ResX xOb = new ResX(); multiObjs.add(xOb);
ResY yOb = new ResY(); multiObjs.add(yOb);
ResZ zOb = new ResZ(); multiObjs.add(zOb);
for (int i = 0; i < multiObjs.size(); i++ ) {
System.out.println(multiObjs.get(i).getV());
}
System.out.println("Waoo its working");
}
}
class MultiObj{
public String greet(){
return "Hello World";
}
public String getV(){
return "Hello World";
}
}
class ResX extends MultiObj{
String x = "ResX";
public String getX(){
return x;
}
public String getV(){
return x;
}
}
class ResY extends MultiObj{
String y = "ResY";
public String getY(){
return y;
}
public String getV(){
return y;
}
}
class ResZ extends MultiObj{
String z = "ResZ";
public String getZ(){
return z;
}
public String getV(){
return z;
}
}
答案 4 :(得分:-4)
你可以这样做:
public class Item {
public Item(int id, string name, float price, int amount, int ArrayID) {
if (ArrayID == 1) {
ID1 = id;
name1 = name;
price1 = price;
amount1 = amount;
}
if (ArrayID == 2) {
ID2 = id;
name2 = name;
price2 = price;
amount2 = amount;
}
if (ArrayID == 3) {
ID3 = id;
name3 = name;
price3 = price;
amount3 = amount;
}
if (ArrayID == 4) {
ID4 = id;
name4 = name;
price4 = price;
amount4 = amount;
}
}
//ArrayID #1
public static int ID1;
public static String name1;
public static float price1;
public static int amount1;
//ArrayID #2
public static int ID2;
public static String name2;
public static float price2;
public static int amount2;
//ArrayID #3
public static int ID3;
public static String name3;
public static float price3;
public static int amount3;
//ArrayID #4
public static int ID4;
public static String name4;
public static float price4;
public static int amount4;
public static int[] id = ID1, ID2 ID3, ID4;
//so forth...
}