Tomb Raider Anniversary recenzja

Lara Croft

Tomb Raider Anniversary – kolejny epizod serii Tomb Raider XXIII – Lara Croft cudownie ocalona po wybuchu w kopalni złota Króla Ptolomele w Brazylii, gdzie była poszukiwać wraz ze swoim mężem Złotego Oka Majów, powraca by, ze swoim trzecim synem z drugiego małżeństwa, powstrzymać złych Illuminatów przed wykorzystaniem Cudownego Jeziora Młodości, które daje każdemu weń … Dowiedz się więcej

Java #52: własne wyjątki biznesowe

java custom exceptions

Własne wyjątki biznesowe, chodź brzmią bardzo skomplikowanie, są po prostu klasami, które rozszerzają wyjątki istniejące już w Twoim kodzie. Będą to przeważnie wyjątki znajdujące się w standardzie Javy, ale biznesowym wyjątkiem może być też wyjątek pochodzący z jakiejś zewnętrznej biblioteki. Jak już wiesz, wyjątki dzielą się na te, które obsługiwanie wymuszane jest przez kompilator (ang. … Dowiedz się więcej

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