Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Karma
    félisten

    És ez így is van.

    class Termek{
    private String nev;
    private double ar;
    private double menny;

    public Zoldseg(String nev, double ar) {
    this.nev = nev;
    this.ar = ar;
    menny = 0.0;
    }

    public String getNev() {
    return nev;
    }

    public double getAr() {
    return ar;
    }

    public double getMenny() {
    return menny;
    }

    public void setMenny(double menny) {
    menny += menny;
    }

    }

    public class Raktar {
    Vector<String> aru = new Vector<String>();

    public void felvitel() {
    String nev = Console.readLine("Kérem adja meg az áru nevét: ");
    Termek aru = new Temek(nev, 0.0);
    if (zoldsegek.contains(aru)) {
    System.out.println("Az áru már létezik!");
    return;
    }
    double ar = Console.readDouble("Adja meg az áruárát: ");
    double menny = Console.readDouble("Adja meg az áru mennyiségét (kg): ");
    aru.add(new Termek(nev, ar));
    }

    A Termek osztály még nincs kész és valszeg nem is jó.

    A menny += menny csak nekem tűnt fel?

    Mindenesetre eddig ez elég FUBAR, szerintem lassítanod kéne egy kicsit és két dolgot mindenképp megejteni: kicsit végiggondolni hogy ki kivel van, és némi konvenciót is kéne találnod a tagváltozókban (vagy kiírni a this-t, mert így a settereid nem sokat csinálnak.

    WonderCsabo: a += -re gondoltam explicite ;)

  • Jim-Y
    veterán

    És ez így is van.

    class Termek{
    private String nev;
    private double ar;
    private double menny;

    public Zoldseg(String nev, double ar) {
    this.nev = nev;
    this.ar = ar;
    menny = 0.0;
    }

    public String getNev() {
    return nev;
    }

    public double getAr() {
    return ar;
    }

    public double getMenny() {
    return menny;
    }

    public void setMenny(double menny) {
    menny += menny;
    }

    }

    public class Raktar {
    Vector<String> aru = new Vector<String>();

    public void felvitel() {
    String nev = Console.readLine("Kérem adja meg az áru nevét: ");
    Termek aru = new Temek(nev, 0.0);
    if (zoldsegek.contains(aru)) {
    System.out.println("Az áru már létezik!");
    return;
    }
    double ar = Console.readDouble("Adja meg az áruárát: ");
    double menny = Console.readDouble("Adja meg az áru mennyiségét (kg): ");
    aru.add(new Termek(nev, ar));
    }

    A Termek osztály még nincs kész és valszeg nem is jó.

    Én ezt így csinálnám.

    http://pastebin.com/0pWx7sH7

    Nyílván csinálhatnál ekkor a gyümölcsöknek is egy külön osztályt. De akár az is játszik, hogy nem csinálsz egy külön interface-t, hanem pl a Zöldséget a Termék osztályból származtatod, mint ahogy a Gyümölcsöt is.
    Ez sem egy világbajnok kód, de szerintem annál amit csináltál jobb :))

  • WonderCSabo
    félisten

    És ez így is van.

    class Termek{
    private String nev;
    private double ar;
    private double menny;

    public Zoldseg(String nev, double ar) {
    this.nev = nev;
    this.ar = ar;
    menny = 0.0;
    }

    public String getNev() {
    return nev;
    }

    public double getAr() {
    return ar;
    }

    public double getMenny() {
    return menny;
    }

    public void setMenny(double menny) {
    menny += menny;
    }

    }

    public class Raktar {
    Vector<String> aru = new Vector<String>();

    public void felvitel() {
    String nev = Console.readLine("Kérem adja meg az áru nevét: ");
    Termek aru = new Temek(nev, 0.0);
    if (zoldsegek.contains(aru)) {
    System.out.println("Az áru már létezik!");
    return;
    }
    double ar = Console.readDouble("Adja meg az áruárát: ");
    double menny = Console.readDouble("Adja meg az áru mennyiségét (kg): ");
    aru.add(new Termek(nev, ar));
    }

    A Termek osztály még nincs kész és valszeg nem is jó.

    Itt eléggé nagy kavar van.

    A Vector<String> aru példányváltozót elfedi a lokális Termek aru - ez bár legális, nem éppen okos döntés. Valamelyiket mindenképpen nevezd át, az elsőnek van rossz neve mellesleg.

    A zoldsegek Vector hol van definiálva?

    Termek aru = new Temek(nev, 0.0);
    if (zoldsegek.contains(aru)) {

    Ez itt mindig false-ot fog visszaadni, mivel a contains az equals metódust hívja meg, ami pedig alapesetben a referenciákat hasonlítja össze, azok pedig sosem fognak egyezni, hiszen mindig új objektumot hozol létre. Definiáld felül az equals és hashCode metódust a Termek osztályban, hogy ez értelmesen működjön.

    A Vector<String> aru típusparamétere miért nem Termek?

    Console.readLine

    Csak kíváncsiságból kérdezem: ezt az osztályt milyen framework szolgáltatja? :)

  • modder
    aktív tag

    És ez így is van.

    class Termek{
    private String nev;
    private double ar;
    private double menny;

    public Zoldseg(String nev, double ar) {
    this.nev = nev;
    this.ar = ar;
    menny = 0.0;
    }

    public String getNev() {
    return nev;
    }

    public double getAr() {
    return ar;
    }

    public double getMenny() {
    return menny;
    }

    public void setMenny(double menny) {
    menny += menny;
    }

    }

    public class Raktar {
    Vector<String> aru = new Vector<String>();

    public void felvitel() {
    String nev = Console.readLine("Kérem adja meg az áru nevét: ");
    Termek aru = new Temek(nev, 0.0);
    if (zoldsegek.contains(aru)) {
    System.out.println("Az áru már létezik!");
    return;
    }
    double ar = Console.readDouble("Adja meg az áruárát: ");
    double menny = Console.readDouble("Adja meg az áru mennyiségét (kg): ");
    aru.add(new Termek(nev, ar));
    }

    A Termek osztály még nincs kész és valszeg nem is jó.

    Te minket itt át akarsz verni ezzel a kóddal!

Új hozzászólás Aktív témák

Hirdetés