商店计划。如何制作盒子类和价格表

时间:2018-04-03 17:04:50

标签: java object

不知道我假设代码盒类使它放花并存储它。与价格表相同我知道hashmap会很好,但不知道如何让它从FloristTest中获取价格。如果客户购买超过5,如果少于8,则会花费7。

public class FloristsTest {

    // definicja metody sumowania wartości kwiatów o podanym kolorze 
      static int valueOf(Box box, String color) {     

  }       

  public static void main(String[] args) {

        // Kwiaciarnia samoobsługowa

        // ustalenie cennika
    PriceList pl = PriceList.getInstance();

        pl.put("róża", 8.0, 5, 7.0);    // róża kosztuje 8 zł/sztuka jeśli klient kupi nie więcej niż 5 sztuk, 
                        // w innym przypadku kosztuje 7 zł/stukę

        pl.put("bez", 12.0);        // bez kosztuje 12 zł/sztuka niezależnie od ilości

        pl.put("piwonia", 8.0);     // piwonia kosztuje 8 zł/sztuka niezależnie od ilości

            // Przychodzi klient Janek. Ma 200 zł
        Customer janek = new Customer("Janek", 200);

            // Bierze różne kwiaty: 5 róż, 5 piwonii, 3 frezje, 3 bzy
        janek.get(new Rose(5));
        janek.get(new Peony(5));
        janek.get(new Freesia(3));
        janek.get(new Lilac(3));

            // Pewnie je umieścił na wózku sklepowym
            // Zobaczmy co tam ma
        ShoppingCart wozekJanka = janek.getShoppingCart();
        System.out.println("Przed płaceniem " + wozekJanka);

            // Teraz za to zapłaci...
        janek.pay(true);    // true = płaci gotówką, bez prowizji

            // Czy przypadkiem przy płaceniu nie okazało się,
            // że w koszu są kwiaty na które nie ustalono jeszcze ceny?
            // W takim razie zostałyby usunięte z wózka i Janek nie płaciłby za nie
            // Również może mu zabraknąć pieniędzy, wtedy też kwiaty są odkładane.
        System.out.println("Po zapłaceniu " + janek.getShoppingCart());

            // Ile Jankowi zostało pieniędzy? 
        System.out.println("Jankowi zostało : " + janek.getCash() + " zł");

            // Teraz jakoś zapakuje kwiaty (może do pudełka)
        Box pudelkoJanka = new Box(janek);
        janek.pack(pudelkoJanka);

            // Co jest teraz w wózku Janka...
            // (nie powinno już nic być)
        System.out.println("Po zapakowaniu do pudełka " + janek.getShoppingCart());

            // a co w pudełku
        System.out.println(pudelkoJanka);

            // Zobaczmy jaka jest wartość czerwonych kwiatów w pudełku Janka
        System.out.println("Czerwone kwiaty w pudełku Janka kosztowały: "
            + valueOf(pudelkoJanka, "czerwony"));


        // Teraz przychodzi Stefan
            // ma tylko 60 zł
        Customer stefan = new Customer("Stefan", 60);

            // Ale nabrał kwiatów nieco za dużo jak na tę sumę
        stefan.get(new Rose(6));
        stefan.get(new Lilac(3));

            // co ma w wózku
        System.out.println(stefan.getShoppingCart());

            // płaci i pakuje do pudełka
        stefan.pay(false);  // false = płaci kartą płatniczą, prowizja = 1%
        Box pudelkoStefana = new Box(stefan);
        stefan.pack(pudelkoStefana);

            // co ostatecznie udało mu się kupić
        System.out.println(pudelkoStefana);
            // ... i ile zostało mu pieniędzy
        System.out.println("Stefanowi zostało : " + stefan.getCash() + " zł");
   }
}

Atm我做了几节课。

public class Rose extends Flower {

    public Rose(int ilosc) {
        super(ilosc, cena);
    }

    @Override
    String getType() {
        return "Roza";
    }

    @Override
    String getColour() {
        return "Czerwony";
    }

    @Override
    int getNumber() {
        // TODO Auto-generated method stub
        return super.getNumber();
    }

    @Override
    double getPrice() {
        // TODO Auto-generated method stub
        return super.getPrice();
    }

}


public abstract class Flower {
    int ilosc;
    double cena;

    Flower() {
    }

    public Flower(int ilosc, double cena) {
        super();
        this.ilosc = ilosc;
        this.cena = cena;
    }

    abstract String getType();

    abstract String getColour();

    int getNumber() {
        return ilosc;
    };

    double getPrice() {
        return cena;
    };

    public String toString() {
        return getType() + ", kolor: " + getColour() + ", sztuk: " + getNumber() + ", cena: " + getPrice() + "\n";
    }

}



  public class Kwiaty {

        protected String rodzaj;
        protected double cena;

        public Kwiaty(String rodzaj, double cena) {
            super();
            this.rodzaj = rodzaj;
            this.cena = cena;
        }

}


 import java.util.*;

public class PriceList {
    private static PriceList instance;
    private Kwiaty kwiaty;

    private PriceList() {
    }

    public static PriceList getInstance() {
        if (instance == null) {
            instance = new PriceList();
        }
        return instance;
    }

    public Kwiaty getKwiaty() {
        return kwiaty;
    }

public void setKwiaty(Kwiaty kwiaty) {
    this.kwiaty = kwiaty;
}

}

import java.util.*;

public class Box {
    String color;


}

我不知道我想在框中编码以使它在那里放花。

1 个答案:

答案 0 :(得分:0)

为您提供一个开始。将一个简单的ArrayList放入Box中。然后添加一个setter。 每当您想在列表中存储Flower-Object时,请使用框的setter-method。

import java.util.ArrayList;
import java.util.List;    

public class Box {
    String color;
    private List<Flower> flowers = new ArrayList<Flower>();

    public void setFlower(Flower flower) {
       flowers.add(flower);
    }
}

这只是第一个提示。我想你会发现如何添加缺失的部分来获得价格表等等。