Java#23: pola statyczne i stałe

java static fields constants

Pola statyczne i metody Pamiętasz pewnie z kursu dotyczącego podstaw programowania, że alternatywą dla programowania obiektowego jest programowanie strukturalne (oparte na metodach statycznych). Każda metoda statyczna (czyli klasowa) musi zawierać wszystkie wewnętrzne komponenty (użyte inne metody czy pola) statyczne. O ile używanie statycznych metod w innych metodach statycznych jest jak najbardziej logiczne, o tyle, możesz … Dowiedz się więcej

Java #22: słowo kluczowe final

java final class

Wiesz już czym jest dziedziczenie oraz polimorfizm. Znasz także klasę abstrakcyjną, która musi rozszerzać inną, aby zostać użyta. Czasami jednak będziesz chcieć uniknąć rozszerzania jednej klasy przez drugą. Powodów może być wiele, a jednym z nich jest uproszczenie architektury kodu poprzez wykorzystanie słowa final. Słowo kluczowe final może być użyte przed nazwą klasy, metody, pola, … Dowiedz się więcej

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