Java #21: przeciążanie metod

java overload vs override

W poprzedniej lekcji pisałem o tym jak przesłaniać metody za pomocą dziedziczenia i adnotacji @Override. Teraz dowiesz się, jaka jest różnica między przesłanianiem (ang. override) a przeciążaniem (ang. overload) metody. Nie jest to wbrew pozorom to samo i często przeciążanie metod jest mylnie utożsamiane jako synonim przesłaniania. Przypatrz się klasom Worker i Lawyer. Teraz napiszę klasę Lawyer dziedziczącą … Dowiedz się więcej

Java #20: adnotacja override, przesłanianie metod

java overriding

Czym są adnotacje? W dzisiejszej lekcji poznasz swoją pierwszą adnotację, którą to będzie adnotacja override. Adnotacje tak jak obiekty są typami referencyjnymi. Nie będę wnikał w jaki sposób się je tworzy, bo jest to wiedza zaawansowana, na dzień dzisiejszy kompletnie Ci nieprzydatna. Adnotacje w Javie możesz traktować jak swego rodzaju specjalne parametry, które nie wpływają w … Dowiedz się więcej

Java #19: polimorfizm i słowo kluczowe this

java polymorphism

Co oznacza polimorfizm? Zagadnienie, które dziś poznasz to polimorfizm. Po pierwszym wymówieniu tego słowa pewnie zastanawiasz się kto wpadł na taki pomysł, aby używać w programowaniu słowa, którego znaczenia nikt nie zna. Podejrzewam też, że nigdy wcześniej nie udało Ci się natknąć na to określenie. Opowiem Ci, że ja byłem chyba wyjątkiem w tej kwestii, … Dowiedz się więcej

Java #18: klasy abstrakcyjne

java abstract class

Znasz już podstawy programowania strukturalnego oraz podstawowe algorytmy. Teraz czas przejść do bardziej skomplikowanych paradygmatów programowania obiektowego. Klasy abstrakcyjne są (abstrakcja) jednym z paradygmatów programowania obiektowego. Można ją wytłumaczyć jak stosowanie równań matematycznych w fizyce. Matematyczne obliczenia to pewnego rodzaju abstrakcja, która później przy podstawieniu odpowiednich wartości wylicza odpowiednie właściwości, które obserwujesz w przyrodzie. Klasy … Dowiedz się więcej

Algorytmy #3: sortowanie – przykłady

sorting java

Podstawy Zagadnienie algorytmów sortowania to jedno z najczęściej zadawanych pytań na rozmowach kwalifikacyjnych. W praktyce rzadko przyda Ci się ta umiejętność, bowiem wszystkie sensowne algorytmy sortowania zostały już dawno opracowane i zaimplementowane. Java także (domyślnie) używa jednego z nich, chodź pozostawia też możliwość implementacji swojego algorytmu sortowania.* Czasami jednak może się okazać, że zajdzie potrzeba … Dowiedz się więcej

Algorytmy #2: dziel i zwyciężaj

divide and conquer

Trochę historii 'dziel i zwyciężaj’ Maksyma „dziel i zwyciężaj” (ang. divide and conquer) powinna kojarzyć Ci się ze starożytnym Rzymem, gdzie główne sukcesy militarne tego Państwa, szły razem z znakomitą dyplomacją. Rzymianie, gdy tylko mogli, koncentrowali się na walce z jednym przeciwnikiem, szukając jak największej liczby sojuszników (z reguły tymczasowych), którzy mogli przyłączyć się do … Dowiedz się więcej

Algorytmy #1: rekurencja/rekursja

algorithms

Czym jest Algorytm? Za pewne zastanawiasz się co to jest algorytm i po co są one tak istotne dla programistów. Najprostsza definicja brzmi: algorytm to sposób rozwiązywania problemu. Jest ona jak najbardziej poprawna, ale aby ją trochę rozszerzyć wyobraź sobie następującą sytuację. Przed Tobą bardzo pracowity dzień i aby wykonać wszystkie czynności jakie sobie zaplanowałeś/aś, … Dowiedz się więcej

Java #17: Formatowanie łańcuchów znaków (String format)

java string format

Formatowanie łańcuchów znaków Na pewno kilka razy zastanawiałeś się, dlaczego nie można w prosty sposób formatować Stringi. Okazuje się, że w formatowanie łańcuchów znaków Javie jest to bardzo proste. Poniżej zaimplementowałem pomocniczą klasę Cat, przechowującą model danych (w tym przypadku są to 'właściwości’ kota). Metoda format Zasada tworzenia sformatowanego tekstu jest prosta. Używasz statycznej metody … Dowiedz się więcej