创建数组表,以便客户可以选择要购买的项目

时间:2014-05-07 06:00:19

标签: java arrays

我创建了一个" 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;

    }
}

非常感谢任何帮助

3 个答案:

答案 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;

这样的颜色

客户选择的项目列表可能是每个对象有两个成员的对象列表:卡和数量。