Klasy, pola, metody... czyli zaczynamy programowanie obiektowe. Drukuj
Ocena użytkowników: / 20
SłabyŚwietny 
Instrukcje dodatkowe - Programowanie w języku JAVA
Wpisany przez Administrator   

Z tej lekcji dowiesz się:

-co to jest klasa

-co to jest pole

-co to jest metoda

nauczysz się:

-tworzyć proste klasy z polami i metodami


 

Programy komputerowe służą do tego, aby przetwarzać dane. W tym celu nauczyliśmy się stosować:

-różne typy zmiennych:

*znakowe(char),

*liczbowe-całkowite (byte, short, int, long),

*liczbowe-zmiennoprzecinkowe (float, double)

*logiczny (boolean)

-instrukcje warunkowe: if, case

-instrukcje-pętle:

*for

*while

*do..while

Typy zmiennych, które wymieniliśmy to jeszcze nie wszystkie, jakie są. Są to tylko proste typy, z których możemy tworzyć złożone byty - klasy.

Aby to zrozumieć, napiszmy i przeanalizujmy prosty program:

 

W programie stworzyliśmy klasę o nazwie samochód.

W klasie występują następujące POLA:

marka, model, kolor typu String

rocznik typu int;

przebieg typu double;

 

Klasa jest więc złożoną strukturą danych, taką jakby całością złożoną z pól, które ją opisują.

 

Aby obiekty danej klasy funkcjonowały trzeba je zainicjować:

Od tej pory w komputerze figuruje obiekt o nazwie s1 klasy samochód.

TO, co zrobiliśmy w linijkach 4-10 było definicją klasy, natomiast w linijce 11 dokonaliśmy inicjacji obiektu klasy samochód, który nazywa się s1.

Jak dotąd jednak nasz obiekt jest bezużyteczny, ponieważ nie przechowuje żadnych danych. Spróbujmy to zmienić: przypiszemy obiektowi s1 jakieś realne wartości:

Od tej pory obiekt klasy samochód ma przypisane wartości pól, jest więc fiatem 126p z 1967 roku, koloru czerwonego i ma na liczniku 200000 km.

Sprawdźmy, czy komputer poprawnie przechowuje te informacje:

Po uruchomieniu:

A więc wszystko działa jak należy. Zwróć uwagę na to, jak odnosimy się do pól danego obiektu:

s1.marka = ...

czyli poprzez podanie nazwy obiektu, kropki a następnie nazwy pola.

 

Ćwiczenie do utrwalenia (obowiązkowe):

1. Napisz program, w którym zdefiniujesz klasę o nazwie procesor o następujących polach:

firma

model

taktowanie

ilość cache

cena

Zastanów się jakiego typu będą te pola.

Następnie zainicjuj obiekt procek1 klasy procesor, wprowadź dane dowolnego procesora i sprawdź, czy będą się poprawnie wyświetlać. Spróbuj pisać program sam, bez pomocy instrukcji.

2. Zmodyfikuj powyższy program tak, aby były aż 2 obiekty klasy procesor: procek1 oraz procek2.

 


Metody

Każda klasa oprócz pól może używać tzw metod. Aby zrozumieć do czego służą metody napiszmy i przeanalizujmy powyższy program:


Po uruchomieniu:

 

W tym programie nie ma metod, za to do wyświetlenia wartości pól użyto 10 linijek:

 

10 linijek do wyświetlenia wartości pól 2 obiektów. Używając prostej logiki, jeśli byśmy mieli 10 obiektów to do wyświetlenia wartości ich pól musielibyśmy napisać 50 linijek kodu - po 5 dla każdego obiektu (bo jest 5 pól klasy). O wiele prościej byłoby napisać procedurę wyświetlania wszystkich pól danego obiektu tylko raz, a później wywołać ją dla każdego obiektu oddzielnie:

To, co tutaj zastosowaliśmy to właśnie metody: przyjrzyjmy się linijkom 8-14:

Właśnie w linijkach 8-14 zdefiniowaliśmy metodę. Metoda jest to jakby prosty mini-program zdefiniowany wewnątrz klasy, który wykonuje jakieś zadania - w tym przypadku wyświetla wartości pól obiektu. Zauważ. że wewnątrz metody (właściwie wewnątrz całej klasy) nie musimy odwoływać się do danych pól poprzez podanie nazwy obiektu, kropki oraz nazwy pola. Wystarczy sama nazwa pola.

 

Wywołanie metody przedstawiono w linijkach 29 i 30. Zauważ, że sposób odnoszenia się do metody jest analogiczny, jak sposób odnoszenia się do pola poza obrębem definicji klasy:

procek1.wyswietl_wartosci_pol();

czyli nazwa obiektu, kropka, nazwa metody.

Używając metod możemy również wprowadzać lub modyfikować wartości pól klasy.

W poniższym przykładzie dodamy metodę służącą zmiany ceny dla obiektu klasy procesor:

Uruchamiamy program i sprawdzamy, czy działa:

 

Program działa.

Zadania do samodzielnego wykonania:

1. Napisz program, który wykorzystując klasę uczeń, o polach: pesel, imię, nazwisko, nr_w_dzienniku, klasa, przechowuje dane 3 uczniów (zastanów się jakiego typu pól użyć). Program na końcu wyświetla wszystkie dane (wartości pól)

2. Zmodyfikuj powyższy program tak, aby można było zmienić nr w dzienniku ucznia oraz klasę.

Dla ambitnych:

3. Zmodyfikuj program tak, aby zmiana nru w dzienniku oraz klasy była opcją (instrukcja warunkowa) a nie była narzucona. (jesli nie pamiętasz jak to zrobić to przypomnij sobie poprzednie zadania)

Dla bardzo ambitnych:

4. Zmodyfikuj program tak, aby można było dodawać nowe obiektu klasy uczeń w nieskończoność (no, może do 1000 uczniów ...).

Powodzenia!