Programowanie Obiektowe

Programowanie obiektowe jest paradygmatem programowania, który opiera się o tworzenie aplikacji w taki sposób, aby jak najlepiej odzwierciedlać otaczającą nas rzeczywistość i aby model danych oddawał sposób postrzegania świata przez człowieka (czyli, że na przykład że jabłko jest owocem, a nie kolorową kulą). Poniżej znajdziesz kilka lekcji, które omawiają to zagadnienie krok po kroku na prostych przykładach i zadaniach, do których odpowiedzi znajdziesz na końcu danej lekcji. Poznasz tu zagadnienia między innymi takie jak klasa, obiekt, interfejs, czy klasa abstrakcyjna i dziedziczenie.

Klasy, metody i obiekty

W pierwszej części kursu powiedzieliśmy tylko pobieżnie czym są klasy i metody w języku Java. Tym razem przyjrzymy im się nieco bliżej. Dowiemy się jak mogą wyglądać, po co ich używać oraz jak przekazywać im parametry. Pierwszy program jaki napisaliśmy wyglądał następująco: public class Hello{ public static void main(String[] args){ System.out.print("Hello World"); } } Jest […]

Pierwszy program obiektowy

W naszym kursie przyszła pora na kolejny „pierwszy program”. Tym razem wykorzystamy mechanizmy programowania obiektowego (ang. Object oriented programming). To co go będzie odróżniało od innych to fakt, że będzie on rozbity początkowo na dwa, a później na więcej plików, z których każdy będzie stanowił oddzielną klasę, a to z kolei pozwoli nam na jej […]

Argumenty metod

Z poprzednich lekcji kursu wiemy, że metody mogą zarówno nie przyjmować żadnych argumentów, jak i przyjmować ich kilka. Tym razem omówimy to nieco dokładniej, ponieważ w Javie można przekazywać argumenty wyłącznie przez wartość/wartość referencji, co niesie za sobą czasami komplikacje. Jak doskonale wiemy metody bez argumentów mogą zwracać, lub też nie jakiś wynik, a służy […]

Metody o zmiennej liczbie argumentów

Metody o zmiennej liczbie argumentów, czyli tzw varargs. Mechanizm wprowadzony w Javie 1.5 w wielu przypadkach pozwala stworzyć dużo bardziej uniwersalny kod.

Przeciążanie metod

Poprzednia lekcja kursu nauczyła nas, że metody mogą przyjmować różne rodzaje argumentów. Zarówno typy proste jak i obiektowe, w różnej ilości, lub wcale. Tym razem zajmiemy się zagadnieniem, które nazywa się przeciążaniem metod (ang. Overloading). Pozwala to najprościej mówiąc na tworzenie metod o takich samych nazwach, ale różnych parametrach. Analogicznie nieprawidłowe jest utworzenie w jednej […]

Konstruktory

Wiemy już, że aby utworzyć nowy obiekt należy skorzystać ze słówka kluczowego new. Na tej lekcji kursu dowiemy się jak tworzyć obiekty w taki sposób, aby na przykład od razu miał zainicjowane pola jakimiś podanymi przez nas danymi. Do tej pory robiliśmy to poprzez utworzenie nowego obiektu i po prostu nadanie wartości zmiennym, które przechowywał. […]

Dziedziczenie – podstawy

Dziedziczenie to podstawowy mechanizm programowania obiektowego. Dzięki niemu możemy utworzyć spójną i łatwą do zrozumienia hierarchię klas, a to uczyni nasz kod bardziej przejrzystym i bardziej podatnym na późniejsze modyfikacje. Dziedziczenie jak sama nazwa wskazuje powoduje przekazanie pewnych cech innym klasom. Najprościej wyobrazić to sobie jako model rodziny. Dziadkowie to klasa bazowa, rodzice dziedziczą pewne […]

Parametry i słowo kluczowe this

W Javie metody i konstruktory mogą być zarówno bez parametrów jak i przyjmować ich różną ilość. Można je podzielić na dwa zasadnicze typy: -parametry jawne (explicit parametr) -parametry niejawne (implicit parametr) Zobaczmy to na przykładzie. Powiedzmy, że mamy klasę Punkt postaci: public class Punkt { int x; int y; public Punkt(int a, int b){ x […]

Dziedziczenie cd. i konstrukcja super()

Kontynuując tematykę dziedziczenia przyjrzyjmy się dokładniej jak wykorzystywać już raz zdefiniowane metody oraz konstruktory. W końcu czasami mimo iż rozszerzamy inną klasę, to chcielibyśmy mieć możliwość dodania do nich czegoś dodatkowego. Zacznijmy od przykładu. Niech klasą bazową będzie Pracownik, a rozszerzać ją będą Lekarz oraz Pielęgniarka. Pielęgniarka oprócz podstawowych pól odziedziczonych z Pracownika, czyli imię, […]

Wyjątki – blok try catch

Blok try catch W większości programów, które będziemy mieli okazję napisać w swoim życiu występują błędy różnego rodzaju. Niektóre z nich są spowodowane naszą błędną implementacją, a inne na przykład błędnymi danymi podanymi przez użytkownika. Byłoby więc absurdem, gdybyśmy nie otrzymali od twórców języka Java prostego mechanizmu pozwalającego na efektywną i stosunkowo prostą ich obsługę. […]

Zgłaszanie wyjątków – instrukcja throw

W poprzedniej lekcji kursu nauczyliśmy się obsługiwać wyjątki generowane podczas wykonania programu poprzez klauzulę try catch. Dziś postaramy się dowiedzieć jak w inny sposób można je zgłaszać. Jest to umiejętność szczególnie przydatna w przypadku wyjątków, których nie da się obsłużyć, ich obsługa nie ma sensu, lub po prostu ich wystąpienie może spowodować nieprawidłową pracę w […]

Interfejsy

Interfejs w rozumieniu jakie za chwilę poznamy może się w pierwszej kolejności mylić z pojęciem interfejsu użytkownika, czyli graficznym dostępem do różnych funkcji programu. W naszym przypadku będzie do szkielet, albo bardziej szczegółowo wymóg jaki będą musiały spełniać klasy implementujące nasz interfejs. Składnia interfejsu jest następująca: [specyfikator_dostępu] interface nazwa_interfejsu { elementy_interfejsu... } Przykładowo wyobraźmy sobie […]

Klasy abstrakcyjne

W Javie do tworzenia pewnej abstrakcji służą jak już się dowiedzieliśmy interfejsy. Istnieje jednak również drugi sposób, są to klasy abstrakcyjne. Ich użycie, a także budowa jest bardzo podobna do interfejsów, ale zawiera też pewne różnice, poniżej znajduje się lista najważniejszych cech klas abstrakcyjnych: mogą zawierać metody abstrakcyjne, czyli takie, które nie posiadają implementacji (ani […]

Polimorfizm

Kończąc rozważania na temat programowania obiektowego nie można nie wspomnieć o rzeczy, na której to wszystko się opiera, chodzi oczywiście o wspominany już w lekcji o interfejsach, czy klasach abstrakcyjnych polimorfizm. Znakomicie oddaje on zasadę IS-A, czyli „jest” (na przykład koń jest zwierzęciem). W Javie każda klasa, czy tego chcemy, czy nie, rozszerza klasę Object. […]
Go to Top