10.07.2015 Views

Modelowanie i implementacja systemów informatycznych - pjwstk

Modelowanie i implementacja systemów informatycznych - pjwstk

Modelowanie i implementacja systemów informatycznych - pjwstk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

98• Ekstensja w ramach tej samej klasy. Metody klasowe w tej samej klasieze słowem kluczowym static. Ponieważ w tej samej klasie istniejekontener też zadeklarowany ze słowem kluczowym static, nasza metodaklasowa ma bezproblemowy dostęp do niego,a co za tym idzie, doekstensji.• Ekstensja jako klasa dodatkowa. Metody klasowe umieszczamy w klasiedodatkowej – tym razem bez słowa kluczowego static.3.1.5.3 Przeciążenie metodyPrzeciążenie metody nie jest konstrukcją czysto obiektową, ponieważ niewykorzystuje jakichś szczególnych pojęć z obiektowości. Mimo wszystko jestwykorzystywana chyba we wszystkich współczesnych językach obiektowychi dlatego warto ją omówić. Przeciążenie metody polega na stworzeniu metodyo takiej samej nazwie jak metoda przeciążana, ale różnej liczbie i/lub typie parametrów.Po co nam druga „taka sama” metoda? Czy to nam się do czegośprzyda? Spójrzmy na przykład z listingu 3-10. W jakiejś klasie, np. kaseta jestmetoda zwracająca jej cenę netto. Co zrobić, jeżeli chcemy dowiedzieć sięo cenę brutto? Możemy utworzyć metodę, np. getCenaBrutto(). Innym sposobemjest przeciążenie podstawowej metody za pomocą parametru określającegostawkę VAT (w procentach). Dzięki temu, odwołując się do niej w kodzieprogramu, nie musimy przypominać sobie jej szczególnej nazwy – po prostuwołamy metodę zwracającą cenę uzupełnioną o parametr.public float getCena() {return cena;}public float getCena(float stawkaVAT) {return cena * (1.0f + stawkaVAT / 100.0f);}3-10 Przykład wykorzystania przeciążania metod3.1.5.4 Przesłonięcie metodyAby dobrze zrozumieć przesłanianie metod, należy najpierw dobrze orientowaćsię w kwestii dziedziczenia. W związku z tym wrócimy do tego zagadnieniapóźniej (patrz podrozdział 3.3.2, strona 158).3.1.6 Trwałość ekstensjiEkstensja klasy jest trwała, gdy jej obiekty „przeżyją” wyłączenie systemu– po ponownym włączeniu systemu będziemy mieli te same obiekty.O ważności tej cechy nie trzeba chyba nikogo przekonywać. W takiej czy innej

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!