Lekcja pierwsza będzie o podstawach programowania, czym jest Java, jak przygotować środowisko do programowania, a także poznamy kilka podstawowych pojęć.
Przed przejściem dalej warto przeczytać poniższe artykuły:
- O wyborze języka programowania — porównanie i krótki opis kilku najpopularniejszych
- O przygotowaniu środowiska i potrzebnych narzędziach
Lekcja
Java — obiektowy język programowania
Bardzo często można spotkać się z definicją, że Java jest obiektowym językiem programowania. Jest to bardzo ważne, ponieważ definiuje to sposób, w jaki pracujemy z językiem. To tzw. paradygmat programowania (zainteresowanych alternatywami lub zgłębieniem tego tematu odsyłam do wikipedii).
Programowanie obiektowe znaczy tyle, że w kodzie pracujemy na obiektach. Obiekty z kolei to odzwierciedlenie rzeczywistych rzeczy, uproszczenie zrozumiałe dla komputera. Gdybyśmy np. pisali aplikację służącą do zarządzania mieszkaniem, mielibyśmy obiekty np. Mieszkanie, Pokój, Pralka, Lodówka, Stół itp..
Weźmy na przykład Pralkę. Pralkę opisują pewne informacje — np. aktualnie wybrany program, to czy jest włączona czy nie, czy drzwiczki są otwarte czy nie itp. Każda z tych informacji może być przechowywana w osobnym polu. Pole to nic innego jak jedna informacja na temat obiektu. Czyli polem będzie informacja, czy drzwi są otwarte, osobnym polem będzie informacja czy pralka jest włączona i jeszcze osobnym polem będzie informacja o aktualnie wybranym programie. Podobnie rok produkcji pralki, jej kolor, marka, wymiary — wszystkie te informacje będą przechowywane w polach obiektu.
Jednocześnie możemy wykonać pewne czynności na pralce — np. włączyć ją, wyłączyć, zmienić program, otworzyć drzwi itp. Każda z tych czynności to tzw. metoda (często spotyka się też określenie operacja) obiektu.
Podsumowując:
- obiekty to abstrakcyjne opisy rzeczywistych przedmiotów
- pola obiektów to pojedyncze informacje o obiekcie
- metody obiektów to czynności jakie możemy wykonać na danym obiekcie
O polach i metodach powiemy sobie więcej w kolejnej lekcji, gdzie będziemy to ćwiczyć już w Javie.
Klasa a obiekt — jaka jest różnica
W programowaniu obiektowym spotkamy się z dwoma podstawowymi określeniami — klasa oraz obiekt. Te pojęcia są ze sobą ściśle związane, ale bardzo istotne jest rozumieć różnicę między nimi.
Mówiąc językiem technicznym obiekt to instancja klasy. Klasa to w pewnym sensie szablon opisu — czyli informacja jakie są pola (jakie informacje można przechowywać) oraz metody (jakie czynności wykonywać). Obiekt z kolei to ‘konkretny przypadek’ — czyli klasa oraz konkretne informacje (wartości pól) które składają się na określony stan całego obiektu.
Aby zobrazować to przykładem — klasa to np. Człowiek. Wiemy o niej, że ma pola imię i nazwisko ale w przypadku klasy nie mówimy o wartościach tych pól — po prostu że takie pola są. Klasa to człowiek jako gatunek, istota. Obiekt z kolei to konkretny człowiek — taki, który posiada imię i nazwisko. Zawsze istnieje więc tylko jedna klasa danego typu, ale może istnieć wiele obiektów danej klasy.
O obiekcie mówimy że jest pewnego typu — typem obiektu jest klasa, którą obiekt reprezentuje. Np. obiekt Jan Kowalski jest typu Człowiek (w kategoriach programowania obiektowego).
Nazwy klas — pakiety
W Javie (jak i w wielu innych językach programowania) przewidziano tzw. przestrzenie nazw. Są one odpowiedzią na problem, że kilka klas może mieć takie same nazwy (np. Converter — klasa o takiej nazwie może występować w kilu miejscach aplikacji i mieć różne zastosowania). Aby wiadomo było o którą klasę dokładnie chodzi, w Javie funkcjonują tzw. pakiety. Pakiet to nic innego jak prefiks nazwy klasy który jednoznacznie ją wyróżnia. Nie mogą istnieć w jednej aplikacji dwie klasy o tej samej nazwie i tym samym pakiecie. Połączenie nazwy pakietu i nazwy klasy kropką w jeden ciąg znaków to tzw. nazwa kwalifikowana (qualified name). Przykładowo, klasa reprezentująca liczbę całkowitą w Javie ma nazwę Integer. Jej nazwa kwalifikowana to java.lang.Integer, a więc pakiet w którym się znajduje to java.lang .
Nazwy pakietów najczęściej tworzy się odwracając nazwę domeny — np. aplikacja pisana w ramach tego kursu będzie używała pakietów zaczynających się od pl.kobietydokodu.kurs . Więcej o pakietach i ich praktycznym zastosowaniu powiemy sobie w kolejnej lekcji.
Zadania
W tej lekcji nie będzie jeszcze zadania związanego z kodem. W ramach zadania odpowiedz własnymi słowami na poniższe pytania:
- Czym jest obiekt?
- Co posiada obiekt?
- Czym różni się metoda od pola?
- Wyjaśnij różnice i wzajemną zależność pomiędzy klasą a obiektem?
Jeśli uważasz powyższą lekcję za przydatną, mamy małą prośbę: polub nasz fanpage. Dzięki temu będziesz zawsze na bieżąco z nowymi treściami na blogu ( i oczywiście, z nowymi częściami kursu Javy). Dzięki!