Hirdetés

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

  • 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? :)

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