Kolekcje

Kolekcje Wprowadzone w javie od wersji 1.2 struktury danych pomagające rozwiązać problem np. z implementacją „rozszerzalnej tablicy”. Podstawowe kolekcje w javie to: listy (list) zbiory (set) mapy (map) kolejki (queue) Poszczególnym typom powyższych kolekcji odpowiadają interfejsy List, Set oraz Map. Wszystkie one od javy 1.5 są generyczne(możemy określić jaki typ obiektów mogą przechowywać) oraz nie […]

Kompozycja

Kompozycja – alternatywa dla klasycznego dziedziczenia. Dzięki takiemu podejściu nasz kod jest bardziej elastyczny. Uzyskujemy ją poprzez definiowanie w nowej klasie pól, które są obiektami istniejących klas. By jeszcze lepiej wykorzystać jej zalety możemy tworzyć klasy na bazie interfejsów. Jeśli we wdrożeniu nie odpowiada nam określona implementacja, to po prostu tworzymy własną, która implementuje metody wcześniej […]

Present Continuous – czas teraźniejszy ciągły

Present Continuous – czas teraźniejszy ciągły Czasu tego używamy opisując czynność wykonywaną w tej konkretnej chwili. Budowa: Zdanie w czasie present continuous składa się z podmiotu + czasownika to be w odpowiedniej formie + czasownika z końcówką -ing. Tom is writing a letter. Zasady pisowni czasowników z końcówką -ing: -e na końcu czasownika znika – w czasowniku jednosylabowym, gdzie […]

Podstawowe założenia OOP (Object Oriented Programming)

Paradygmat programowania obiektowego polega na możliwie jak najdokładniejszym odzwierciedleniu otaczającego nas świata w kodzie za pomocą min. obiektów i ich metod. Podstawowe założenia: Abstrakcja – Ograniczamy cechy obiektu ze świata rzeczywistego do cech istotnych z punktu widzenia programisty. Ma to za zadanie uprościć rozwiązanie problemui zwiększyć jego ogólność. Warto przeczytać: interfejsy. Hermetyzacja (inaczej enkapsulacja) – Ukrywanie […]

Present simple – czas teraźniejszy prosty

Present simple – czas teraźniejszy prosty Czasu tego używamy: 1) mówiąc o czynnościach typowych, rutynowych, powtarzających się John never drinks alcohol. 2) Opisujemy za jego pomocą cechy i stany ludzi/przedmiotów She doesn’t remember him. 3) opisujemy rzeczy/zjawiska które zawsze są prawdziwe Earth goes around the Sun. 4) do opisu czynności dziejących się przez dłuższy czas I work in a bank. 5) do opisywania […]

Klasy anonimowe

Klasy anonimowe są spotykane dużo częściej niż klasy wewnętrzne (i ich pochodne). Nie posiadają one swojej nazwy, mogą się one odwoływać do pół klasy opakowującej, a także do zmiennych lokalnych w metodach o ile zmienne te są finalne lub efektywnie finalne. Mają dokładnie jedną instancję(pomijamy mechanizm refleksji). Klasy anonimowe mają jeszcze jedną unikalną właściwość – […]

Klasy wewnętrzne i wewnętrzne lokalne i zagnieżdżone

Klasy wewnętrzne w przeciwieństwie do „zwykłych” klas javy mogą być prywatne i niewodoczne dla użytkownika(modyfikator dostępu private), protected ale również final, abstractczy public. Wykorzystywane są głównie wtedy, gdy chcemy w niej mieć dostęp do klasy otaczającej bez konieczności tworzenia i przekazywania jej instancji lub gdy chcemy ją wykorzystać tylko w celach pomocniczych i nie ma […]

Metoda equals()

Metoda equals (dziedziczona z klasy object) służy do porównywania obiektów(zwraca wartość true lub false), jako argument przyjmuje obiekt klasy object (czyli w praktyce dowolny obiekt). W podstawowej implementacji sprawdzana jest wyłącznie równość referencji (czy zmienne wskazują na ten sam obszar w pamięci). Jest to zachowanie analogiczne do użycia operatora ==. Wynikiem będzie dwa razy false […]

Klasy abstrakcyjne

Oznacza się je jako abstract, nie można ich zainicjalizować (utworzyć obiektu) oraz posiadają metody abstrakcyjne które podobnie jak w przypadku interfejsów nie posiadają ciała i wymuszona jest ich implementacja (w klasach dziedziczących po takiej klasie abstrakcyjnej). Jednak w odróżnieniu od interfejsów klasy abstrakcyjne mogą mieć swoje pola i metody nieabstrakcyjne(z implementacją) których możemy używać analogicznie jak w przypadku zwykłego […]

Interfejsy

Interfejs to swego rodzaju warstwa abstrakcji która narzuca programiście implementację, w klasach potomnych, metod które ma w sobie zdefiniowane. Owe metody są tylko sygnaturą, nie ma ciała metody, nie ma implementacji (to wszystko należy umieścić w klasie implementującej dany interfejs). W odróżnieniu od klasycznego diedziczenia (klasa po klasie) gdzie nie występuje wielodziedziczenie (jedna klasa może […]