Wykład 06. Tworzenie i usuwanie obiektów, czas życia obiektów
Transkrypt
Wykład 06. Tworzenie i usuwanie obiektów, czas życia obiektów
Wykład 06. Tworzenie i usuwanie obiektów, czas życia obiektów. Przeciążanie konstruktorów i metod. class Skarbonka { double kwota; int wpłaty, wypłaty; Skarbonka() { kwota = 0.0; wpłaty = wypłaty = 0; } void wpłać(double k) { kwota += k; wpłaty++; } void wypłać(double k) { kwota -= k; wypłaty++; } public String toString() { return "skarbonka: suma=" + kwota + ", wpłaty=" + wpłaty + ", wypłaty=" + wypłaty; } protected void finalize() { System.out.println("skarbonka przestaje istnieć"); } } Skarbonka sk = new Skarbonka(); sk.wpłać(10); sk.wypłać(5); System.out.println(sk); sk = null; System.gc(); 1/2 przeciążanie, this, komunikacja między obiektami: class Ułamek { int licznik, mianownik; Ułamek(int licznik, int mianownik) { this.licznik = licznik; this.mianownik = mianownik; } Ułamek(int liczba) { this(liczba, 1); } Ułamek() { this(0); } void dodaj(Ułamek u) { licznik = licznik * u.mianownik + mianownik * u.licznik; mianownik = mianownik * u.mianownik; } Ułamek plus(Ułamek u) { Ułamek wynik = new Ułamek(licznik, mianownik); wynik.dodaj(u); return wynik; } public String toString() { return licznik + "/" + mianownik; } } Ułamek u1 = new Ułamek(2,3); Ułamek u2 = new Ułamek(1,2); System.out.println(u1); System.out.println(u2); u1.dodaj(u2); System.out.println(u1); Ułamek u3 = u1.plus(u2); System.out.println(u3); 2/2