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

  • geckowize

    őstag

    Sziasztok

    Elég beginner levelen vagyok Java-ból és gyakorlok egy könyv segítségével (Gál Tibor: Java programozás, Műegyetemi kiadó, 2002) és elakadtam egy feladatnál, amelyet hosszas guglizás követett, de mégsem jutok semmire.

    A feladat a következő:
    Konstruáljon meg egy osztályt egy parkolóban lévő autók nyilvántartására! Az
    osztály tartalmazzon két példányváltozót a rendszám és a belépési idő, tovább
    egy statikus változót a parkolóban jelen lévő autók számának tárolására. Az
    utóbbit mindig növeljük eggyel, ha egy autó belépésekor létrehozunk egy új
    autó objektumot, illetve csökkentsük eggyel, ha megszüntetünk egy autó
    objektumot a null hozzárendeléssel.

    Ebből az utolsó rész nem megy, azaz, nem tudom a csökkentést hol végezzem. Mainben persze meg tudnám írni (simán meghívok egy függvényt a nullá tétel után), de nyilván nem ez a cél, a Car osztályban kellene valahogy megvalósítani, azonban mivel ez nem C++ és nincs destruktor, a finalize()-nak meg nem garantált a lefutása, nem tudom hogyan kellene figyelni, hogy egy-egy példányt null-á teszek.

    Eddig a kód a következőképpen néz ki:

    Car.java:
    import java.util.Date;

    public class Car {
    private String licensePlate;
    private Date arrival;

    private static int numOfCars;

    public Car(String lp, Date arr) {
    this.licensePlate = lp;
    this.arrival = arr;
    numOfCars++;
    }

    public static int getNumOfCars() {
    return numOfCars;
    }
    }

    Main.java:

    import java.util.Date;

    public class Main {
    public static void main(String[] args) {
    Date da = new Date();
    Car a = new Car("AAA-111", da);

    Date db = new Date();
    Car b = new Car("BBB-222", db);

    System.out.println(Car.getNumOfCars());

    a = null;
    b = null;

    System.out.println(Car.getNumOfCars());
    }
    }

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