background image

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 

www.michalbereta.pl

 

mbereta@pk.edu.pl 

 

background image

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  

background image

Modyfikatory dostępu   

dostęp z klasy  
pochodnej 
 z tego samego pakietu 

dostęp z klasy  
pochodnej 
 z dowolnego miejsca 

background image

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ę) 

background image

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). 

background image

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() ) 

background image

Klasy abstrakcyjne 

background image

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. 

background image

Klasy abstrakcyjne 

Nie można tworzyd obiektów klas 
abstrakcyjnych! 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

Nie można mied po prostu wielokąta. 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

background image

Klasy abstrakcyjne 

Klasa abstrakcyjna może implementowad 
wybrane metody, np. załóżmy, że kolorowanie 
kształtu jest zawsze tym samym procesem. 

background image

Klasy abstrakcyjne 

Zadanie 
 
  Gdzie w przykładzie o zwierzętach 

powinna/powinny pojawid się klasa / klasy 
abstrakcyjne? 

background image

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. 

background image

Interfejsy 

background image

Interfejsy 

background image

Interfejsy 

background image

Interfejsy 

Przykład 
 
Mamy klasę Ekran, której obiekty mogą rysowad Figury. 

background image

Interfejsy 

background image

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. 

background image

Interfejsy 

background image

Interfejsy 

Propozycja 
(czy poprawna?) 

background image

Interfejsy 

background image

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? 

background image

Interfejsy 

Zły projekt 

background image

Interfejsy 

Lepszy projekt 

background image

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 

e-mail: 

wiedza@pk.edu.pl

 

www.wiedza.pk.edu.pl