Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego
w ramach projektu
Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych
i propagowaniu wiedzy technicznej w regionie
Java Podstawy
Michał Bereta
mbereta@pk.edu.pl
Modyfikatory dostępu
dostęp z tej
samej klasy
dostęp z dowolnej
klasy w tym samym
pakiecie
dostęp z klasy
pochodnej
z dowolnego
miejsca
dostęp z dowolnej
klasy z dowolnego
miejsca
Modyfikatory dostępu
dostęp z klasy
pochodnej
z tego samego pakietu
dostęp z klasy
pochodnej
z dowolnego miejsca
Klasy
Składowe statyczne
należy do całej klasy (wspólne
dla wszystkich obiektów tej
klasy)
własnośd obiektu (każdy
obiekt ma swoją kopię)
Klasy
Składowe statyczne
Dostęp do
statycznych pól i
metod przez obiekt
jest dopuszczalne.
Dostęp do
statycznych pól i
metod przez klasę
(bez obiektu).
Klasy abstrakcyjne
Klasy abstrakcyjne są to klasy, których obiektów nie można utworzyd.
Można natomiast tworzyd klasy pochodne.
Przykład
Zaproponuj zestaw klas i ich relacje do modelowania różnych figur
geometrycznych, które mają swoje sposoby rysowania się na ekranie.
(Proces rysowania zastąpimy wypisaniem wiadomości z wykorzystaniem
System.out.println() )
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasa abstrakcyjna nie musi posiadad
implementacji swoich metod.
Klasy z niej się wywodzące muszą
implementowad te metody, lub same muszą
byd abstrakcyjne.
Klasy abstrakcyjne
Nie można tworzyd obiektów klas
abstrakcyjnych!
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasy abstrakcyjne
Nie można mied po prostu wielokąta.
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasy abstrakcyjne
Klasa abstrakcyjna może implementowad
wybrane metody, np. załóżmy, że kolorowanie
kształtu jest zawsze tym samym procesem.
Klasy abstrakcyjne
Zadanie
Gdzie w przykładzie o zwierzętach
powinna/powinny pojawid się klasa / klasy
abstrakcyjne?
Interfejsy
Interfejsy są sposobem definiowania wspólnych zachowao (metod, ale
również pól), dla obiektów, które nie muszą wywodzid się ze wspólnej
klasy przodka.
Interfejsy
Interfejsy
Interfejsy
Interfejsy
Przykład
Mamy klasę Ekran, której obiekty mogą rysowad Figury.
Interfejsy
Interfejsy
Chcemy rozbudowad nasz program tak by obiekt typu Ekran mógł rysowad również
obiekty klas ArtystycznyNapis oraz Bitmapa (zapewnie również inne w przyszłości).
Dziedziczenie nie jest tu możliwe.
Interfejsy
Interfejsy
Propozycja
(czy poprawna?)
Interfejsy
Interfejsy
Rozwiązanie zdaje się działad, ale co jeśli chcemy dołożyd więcej klas obsługiwanych
przez Ekran?
Jakie lepsze podejście można zaproponowad?
Interfejsy
Zły projekt
Interfejsy
Lepszy projekt
Projekt
Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu
przedmiotów ścisłych i propagowaniu wiedzy technicznej w regionie
współfinansowany przez Unię Europejską ze środków
Europejskiego Funduszu Społecznego
Instytut Fizyki Politechniki Krakowskiej
pok. F206a, ul. Podchorążych 1, 30-084 Kraków
tel.: +48 12 6370666 w. 28, faks: +48 12 6371446
www.wiedza.pk.edu.pl