我创建了一个" mock"订购系统根据对JoptionPane窗口的回复获取客户输入。
诸如"您希望购买什么类型的卡片套牌Standard,Uno或Rook?"他们输入他们的答案,我的系统记录下来,价格随后关联。
我现在想要将这些物品放在一个阵列中,这样我就可以继续并分配一个价格,例如客户想要订购一个"蓝色,标准,塑料卡片组"我希望与此订单相关的价格为3.00美元。
我尝试在main方法中创建产品,然后在Card类和子类中创建产品。我只是想知道我是否在正确的轨道上,或者我是否需要走另一条路来完成这项工作。
//Array
class DiamondCards{
public static void main(String[] args){
Card[] card = new Card[6];
// Fill in Cards
card[0] = new Card("Laminated Coating", "Standard", 2);
card[1] = new Card("Laminated Coating", "Uno", 2.50);
card[2] = new Card("Laminated Coating", "Rook", 2.75);
card[3] = new Card("Plastic Card", "Standard", 3);
card[4] = new Card("Plastic Card", "Uno", 3.50);
card[5] = new Card("Plastic Card", "Rook", 3.75);
// Card Super Class
static public class Card{
public String coatingType;
public String deckType;
public double cost;
public Card(String coatingType, String deckType,
double cost){
this.coatingType = coatingType;
this.deckType = deckType;
this.cost = cost;
}
}
非常感谢任何帮助
答案 0 :(得分:1)
使用List
代替数组。数组是固定大小的,如果你想调整一个数组的大小,你需要创建一个新数组并复制所有元素,但这是很昂贵的操作。
List<Card> cards = new ArrayList<>();
// Fill in Cards
cards.add(new Card("Laminated Coating", "Standard", 2));
cards.add(new Card("Laminated Coating", "Uno", 2.50));
cards.add(new Card("Laminated Coating", "Rook", 2.75));
cards.add(new Card("Plastic Card", "Standard", 3));
cards.add(new Card("Plastic Card", "Uno", 3.50));
cards.add(new Card("Plastic Card", "Rook", 3.75));
然后添加一个新的
答案 1 :(得分:1)
看起来不错。
为了使其更好,您可以将Card
属性设为私有,并添加setter和getter方法。您的IDE是免费的。假设您想要使成本评估变得动态,您不必更改Card
的API。
答案 2 :(得分:1)
是的,你走在正确的轨道上。
使用ArrayList或Vector来获得更灵活的收集。
您需要另一个集合来处理客户选择的项目。
你需要添加&#34; color&#34;如果客户可以选择像蓝色&#39;
这样的颜色客户选择的项目列表可能是每个对象有两个成员的对象列表:卡和数量。