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

Generics – typy uogólnione 

Programowanie z wykorzystaniem typów uogólnionych pozwala na 
wykorzystanie typów jako parametrów podczas definiowania metod, klas oraz 
interfejsów. 
 
Pozwala to na dokładniejsze sprawdzanie zgodności typów na etapie 
kompilacji, jak również pisanie kodu wielokrotnego użycia (dla różnych typów 
danych). 

background image

Generics – typy uogólnione 

zwykła metoda  

background image

Generics – typy uogólnione 

zwykła metoda  

Wada: metoda taka jest zdefiniowana tylko dla typu int. 
 
Porównanie dwóch dowolnych obiektów jest ogólnym 
problemem. 

background image

Generics – typy uogólnione 

Metoda uogólniona - działa z każdym typem T, 
który implementuje interfejs Comparable 
umożliwiający porównanie obiektów. 

background image

Generics – typy uogólnione 

background image

Generics – typy uogólnione 

zwykła metoda  

background image

Generics – typy uogólnione 

background image

Generics – typy uogólnione 

Taka klasa może przechowywad 
parę elementów jedynie typu 
int. 

background image

Generics – typy uogólnione 

Taka klasa może 
przechowywad parę 
elementów dowolnego 
typu - tego samego lub 
różnego. 

background image

Generics – typy uogólnione 

Przykładowy projekt: TypyUogolnione.zip 

background image

Kolekcje 

Kolekcje szeroko wykorzystują typy uogólnione. 
 
Pozwala to na oddzielenie struktur danych służących do przechowywania 
elementów kolekcji od algortymów, które działają w sposób ogólny (np. 
wyszukiwanie, sortowanie). 

background image

Kolekcje 

Najważniejsze interfejsy 

background image

Kolekcje 

http://docs.oracle.com/javase/7/docs/api/java
/util/Collection.html

 

background image

Kolekcje 

background image

Kolekcje 

http://docs.oracle.com/javase/7/docs/api/

 

… 

background image

Kolekcje 

Set - zbiór, nie przechowuje duplikatów. 
 
List - lista,  
 

ArrayList - wolne wstawianie/usuwanie, szybki bezpośredni dostęp 

 

LinkedList - szybkie wstawianie/usuwanie, wolny bezpośredni dostęp 

 
Oueue - kolejka, umożliwia modelowanie "pierwszy na wejściu, pierwszy na wyjściu" 
 
Map - mapa, umożliwia przechowywanie wartości "klucz-wartośd" 

Najważniejsze implementacje 

background image

Kolekcje 

http://docs.oracle.com/javase/7/docs/api/java
/util/Collections.html

 

background image

Kolekcje 

Wymagana jest referencja do obiektu, a nie typ 
wbudowany 

Przykład – losowanie liczb w totolotku 

background image

Kolekcje 

Przykład – losowanie liczb w totolotku 

background image

Kolekcje 

Przykładowy projekt: TotolotekKolekcje.zip 

background image

Kolekcje 

 
Iteratory - specjalne obiekty służace do "przechodzenia po kolekcji". 
 
Zaletą iteratorów jest to, że ich użycie jest takie samo dla każdej kolekcji. 

background image

Kolekcje 

sprawdzenie czy 
jest kolejny obiekt 

pobranie kolejnego obiektu 

background image

Kolekcje 

Pętla for również wykorzystuje obiekt typu 
Iterator. 

background image

Kolekcje 

Przykład: wyszukiwanie binarne - dużo szybsze niż przeglądnie 
wszystkich elementów kolekcji.  
 
Wymaga by kolekcja była posortowana. 

Przykładowy projekt: WyszukiwanieBinarne.zip 

background image

Kolekcje 

background image

Kolekcje 

background image

Kolekcje 

background image

Kolekcje 

Uwaga! 
 
 Klasa LinkedList<> ma 
bardzo wolny dostęp 
bezpośredni! 

background image

Kolekcje 

Zadanie 
 
Dla klasy pracownik zdefiniuj klasy typu Comparator umożliwiające 
sortowanie względem imienia oraz imienia. Zademonstruj ich działanie. 

background image

Strumienie 

Przykładowy projekt: WyszukiwanieTekstu.zip 

Zadanie 
 
Uruchom wyszukiwanie tekstu w osobnym wątku.  
 
Przetestuj działanie programu na dużym pliku tekstowym.  
 

http://www.gutenberg.org/

  

background image

Strumienie 

Przykładowy projekt: Chat.zip 

background image

Dostęp do baz danych przez JDBC 

Przykładowy projekt: BazaDanych.zip 

background image

Dostęp do baz danych przez JDBC 

baza danych Derby 

background image

Dostęp do baz danych przez JDBC 

background image

Dostęp do baz danych przez JDBC 

plik jar ze 
sterownikiem 

background image

Dostęp do baz danych przez JDBC 

background image

Dostęp do baz danych przez JDBC 

background image

Dostęp do baz danych przez JDBC 

background image

Dostęp do baz danych przez JDBC 

http://docs.oracle.com/javase/tutorial/jdbc/in
dex.html

 

http://netbeans.org/kb/docs/ide/java-db.html

 

http://netbeans.org/kb/70/java/gui-db.html

 

http://db.apache.org/derby/docs/dev/getstart/

 

http://netbeans.org/kb/docs/java/gui-
binding.html

 

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