Java #51: JDBC – połączenie z bazą danych

java database jdbc

Aby zrozumieć dzisiejszą lekcję, musisz znać podstawy baz danych. Jeśli nie masz pojęcia czym są i do czego służą, proponuję wpierw poznać lub powtórzyć wiedzę o tym jak dokonywać prostych zapytań SQL do relacyjnych baz danych. Następnie zapoznam Cię z biblioteką JDBC. Bazy danych – podstawowe informacje Baza danych jest samodzielnym mechanizmem przechowywania danych. Innym … Dowiedz się więcej

Java #50: własne adnotacje – zastosowanie

java annotation

Znasz już kilka adnotacji (np. @Override). Język Java umożliwia tworzenie ich dowolnie dużej ilości tzw. customowych (od ang. custom) adnotacji. Jednak zanim zaprojektujesz własne adnotacje, czas przyjrzeć im się z bliska. Nazwy adnotacji zaczynają się od znaku małpy (@). Podstawowe właściwości Adnotacje, w zależności od jej funkcji, z reguły stawiasz przed nazwą: klasy interfejsu pola … Dowiedz się więcej

Java #49: mechanizm refleksji

java reflection

Programowanie generyczne pozwala na ujednolicenie Twojego kodu w wielu obszarach. Podobnie działa mechanizm refleksji. Tak tak jak w matematyce, aby się nie powtarzać możesz skorzystać z wielu symboli i wyrażeń*, tak samo w programowaniu możesz ułatwić sobie życie, stawiając na abstrakcje, którą wykorzystasz wielokrotnie, zamiast implementując prawie taką samą logikę w kilku miejscach na raz. … Dowiedz się więcej

Java #48: własny iterator (interfejs Iterable)

java iterator

Własny iterator Skoro znasz zarówno typy generyczne jak i struktury danych, to możesz napisać swój własny iterator, który będzie przechodził po kolekcji, zgodnie z Twoją intencją. Wpierw należy zaimplementować interfejs Iterator, który zawiera dwie metody hasNext i next. Pierwsza z nich musi zwracać warunek logiczny prawda-fałsz, decydujący kiedy przerwać pętle. Druga metoda powinna decydować w … Dowiedz się więcej

Java #47: typ wieloznaczny (wildcard)

java erase type

Ostatnim tematem związanym z typami generycznymi, jest używanie tak zwanego typu wieloznacznego (ang. wildcard). Oznacza się go za pomocą znaku zapytania (czyli np. ArrayList<?>). Powszechnym wykorzystaniem tego mechanizmu jest sytuacja, gdy wiedza o tym, jaki typ finalnie będzie użyty jest kompletnie nie znana. Świetnym przykładem, jak użyć typ wieloznaczny, jest refactoring* starego kodu. Pewnie tego … Dowiedz się więcej

Java #46: ograniczenia typów generycznych

java generic type

Ponieważ każda klasa w Javie. która nie jest finalna, może być dziedziczona lubi sama dziedziczyć. To pojawia się problem, w jaki sposób taka klasa miałaby być typem generycznym. Wiesz ze wcześniejszych lekcji, że polimorfizm umożliwia sprytne 'przeskakiwanie’ pomiędzy implementacjami danej klasy. Istnieje, jednak sposób, w jaki można podczas programowania Twojego generyka, 'pokazać’ Javie jakiej instancji … Dowiedz się więcej

Java #45: typy generyczne (generics)

java generics

Klasa generyczna i typy generyczne Używając kolekcji bardzo często korzystałem z magicznych ostrych nawiasów, w obrębie których wpisywałem nazwę klasy, której typu miały być jej elementy. Za przykład może posłużyć ArrayList<String>, która jest strukturą przechowującą wiele różnych obiektów typu String. Taki zapis nazywa się klasą generyczną (ang. generic class). Każda klasa w Javie może być … Dowiedz się więcej