Java objektum feladatok – Kávéfőző

Írj egy kávéfőzőt modellező programot.

  1. A kávéfőző a következő metódusokkal rendelkezzen:
    1. feltolt( mivel, mennyit )
    2. kiurit( mit )
    3. foz()
  2. A kávéfőzőbe maximum 10 adag vizet, és 6 adag kávét lehet tölteni. Vizet bármikor utánatölthetsz, kávét csak akkor, ha nem használt.
  3. A kávéfőzőből ki lehessen üríteni a használt kávét.
  4. A kávéfőzőt fel lehessen tölteni vízzel és kávéval a kapacitásnak megfelelően
  5. A feltöltött kávéfőzővel lehessen kávét főzni. A főzéskor mindig annyi vizet használ fel, ahány adag kávé van benne
  6. A kávéfőző rendelkezzen egy edénnyel, ami főzéskor a kész kávét tárolja. Főzéskor írd ki, hány adag kávét főztél.
  7. Az edény a következő metódusokkal rendelkezzen:
    1. kostol() – megadja, hogy milyen kávé van benne. Ha főzéskor a víz kevesebb, mint amennyi adag kávé van benne, a lefőtt kávé legyen túl erős. Ha a kávé használt volt, akkor a kávé legyen pocsék.
    2. kiont() – kiönti a kész kávét
  8. Ha az edényt nem üríted ki, akkor a benne lévő jó kávét el tudja rontani az esetlegesen “ráfőzött” rossz, vagyis ha nem ürítetted ki a használt kávét, vagy túl kevés vízzel főzted, valamint a kész kávé mennyisége is legyen több. Ha jó kávéra jót főztél, akkor az edényben is jó marad a kávé, csak a mennyisége legyen több.
  9. A kávéfőzőre rá lehessen nézni, ilyenkor írd ki, hogy mivel és mennyire van feltöltve, használt kávé van-e benne, valamit éppen milyen és mennyi kávé van az edényben.
  10. A vezérlőprogramban metódus hívásokkal üzemeltesd a kávéfőzőt.
    kv.feltolt(“kave”,5);
    kv.feltolt(“kave”,3);
    kv.feltolt(“viz”,10);
    kv.feltolt(“viz”,2);
    kv.foz();
    kv.foz();
    kv.nez();
    edeny.kostol();
    edeny.kiont();
    kv.nez();
    stb…
  11. Megfelelő hibakezeléssel biztosítsd, hogy ne fordulhassanak elő hibák. A hibákről szöveges üzenetet is írj ki:
    1. negatív vízmennyiség
    2. túltöltés (csak akkor tölthess bele, ha belefér)
    3. üresen főzni
    4. edényből kétszer kiöntés, stb.

6 Replies to “Java objektum feladatok – Kávéfőző”

  1. Köszönöm

    Sikerült eljutni a 7.feladatig.Az nem világos hogy az edénynek egy új osztályt kell e létrehozni?
    Valamint hogy ennek az új osztálynak hogyan adom át a számított értékeket pl vízszint.

    • Természetesen kell új edény, a feladat is azt mondja, hogy rendelkezzen egy edénnyel. Az edény tárolja majd változóban, hogy mennyi kávé van benne, és az milyen minőségű.

      Amikor a gépben lévő kávéporból és a vízből lefő a kávé, akkor az edénynek valamilyen metóduson keresztül át kell adni, hogy mennyiségileg mennyi főtt le, valamint a gépben lévő főzést vezérlő metódusnak el is kell döntenie, hogy a lefőtt kávé milyen minőségű legyen. A főző metódus adja az edénynek adja át a kész kávét és annak minőségét tartalmazó változókat.

      Az edény objektuma, amit az edény osztályból kell létrehozni pedig a gépben tárolandó, mert tudnia kell a gépnek, hogy melyik edény van benne, és az mit tartalmaz.

      • Ez a része nekem is meghaladja a képességeimet.
        Hiába állítok mindent publicra (osztályt, változót), a Kavefozo osztály változóit nem látja az Edeny osztaly. Mit hagytam ki? Alapból nem értem az egészet, hogy miért nem működik az access modifier. Egyazon package-ban lévő 2 osztály (akár public, akár default), nem látja egymás változóit.

      • Hali

        Rájöttem a megoldásra. Bár én fordítva csináltam, mint ahogy itt az utolsó postban írtad. Nem a kávéfőzőben példányosítottam az edényt, hanem az edényben a kávéfőzőt.
        Ráadásul ez így még nem működik (jól), ha közvetlenül az osztálypéldányon hívom meg a metódusokat (pl. kavefozo.foz();), mert az edény osztály még getterrel sem látja a kávéfőző osztály változóit. A lényeg, hogy a main()-ben az Edeny osztályban példányosított Kavefozo objektumpéldányon hívom meg a Kavefozo metódusait.
        (pl. edeny.kavefozo.feltolt(kave, 6);)

        Lehet, hogy túlkomplikáltam?

Hozzászólás a(z) Attila bejegyzéshez Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .