1. Treści programowe:
Przeciążanie metod i
konstruktorów, specyfikatory dostępu publiczne,
prywatne, domyślne(pakietowa), losowanie liczb, korzystanie z klas
bibliotecznych, dołączanie pakietów, deklaracja i wykorzystanie tablic.
2. Cel zajęć:
Opanowanie
umiejętności posługiwania się mechanizmami przeciążania metod i konstruktorów
oraz kontroli dostępu do zmiennych.
Opanowanie
umiejętności posługiwania się pakietami bibliotecznymi. Wykorzystanie tablic do
przechowywania obiektów.
3. Materiały
dydaktyczne:
· Specyfikatory i modyfikatory
dostępu
· public - specyfikator
określa dostęp do składowych (zmiennych i metod) bez ograniczeń z każdej klasy
również z innego pakietu.
· private -
specyfikator określa dostęp do składowych wyłącznie w klasie, w której taka
składowa zastała zadeklarowana. Dostęp z
poza klasy macierzystej możliwy jest tylko przez odpowiednio zdefiniowane
metody.
· protected – pozwala na dostęp do
składowej tylko dla klas dziedziczących oraz klas z tego samego pakietu (będzie
omówiony na następnych zajęciach)
· specyfikator domyślny (pakietowy)
- występuje, gdy nie podamy żadnego z powyższych i określa dostęp do zmiennych
na poziomie pakietu. Składowa z takim specyfikatorem nie jest dostępna z
poziomu innego pakietu.
· modyfikator
static
sprawia, iż zdefiniowana zmienna przyjmuje jedną wartość, która jest dostępna z
wszystkich obiektów utworzonych wg tej samej klasy. Może być również dostępna
bezpośrednio z klasy, bez tworzenia obiektu np. Math.sqrt(x); Modyfikator
static używany jest również wyłącznie dla metod
operujących na zmiennych statycznych.
Klasa Random udostępnia mechanizmy losowania
liczb pseudolosowych zawarta w pakiecie java.util. Aby wylosować liczbę należy z
obiektu klasy Random wywołać metodę nextInt(x);
podając jako parametr, górny zakres losowanych liczb-1.

Przykład programu
ukazujący wykorzystanie specyfikatorów dostępu, mechanizmu przeciążania metod i
konstruktorów oraz wykorzystania składowych statycznych (klasowych):



Deklaracja tablicy:
1. Deklaracja
odwołania do tablicy
Najpierw deklarujesz
zmienną, która będzie odwołaniem do tablicy. W tym momencie nie ma jeszcze
samej tablicy w pamięci.
![]()
Przykład:

2. Utworzenie obiektu
tablicy
Następnie tworzysz
obiekt tablicy w pamięci, używając operatora new.
Musisz podać rozmiar tablicy (liczbę elementów, które może pomieścić).
![]()
Przykład:

Ważna uwaga: Tablice w Javie mają stały
rozmiar. Po utworzeniu tablicy, nie można już zmienić jej długości.
Przykład
wykorzystania tablicy do przechowywania obiektów:

4. Zadania
Napisz program składający się z dwóch klas: Loteria i Losowanie.
Klasa Losowanie – udostępnia mechanizmy losowania liczby całkowitej.
Losowanie wartości powinno odbywać się w momencie tworzenia
nowego obiektu tej klasy na trzy sposoby zależne od liczby argumentów:
·
nie podając żadnych argumentów – losowanie odbywa się w
przedziale od 0 do 100,
·
podając jeden argument – losowanie w przedziale od 0 do
wartości argumentu,
·
dwa argumenty – losowanie od wartości pierwszego do
wartości drugiego.
Wylosowana wartość powinna być zapisana w zmiennej
obiektowej liczbaLosowa
niedostępnej bezpośrednio z innych klas.
Klasa Loteria – jest główną klasą programu, w której należy utworzyć trzy
obiekty liczba1, liczba2 i liczba3 na
trzy możliwe sposoby.
Wszystkie wylosowane wartości z trzech obiektów wyświetl na
ekranie (aby to zrobić należy dodatkowo dopisać kod w klasie Losowanie nie
zmieniając już zapisanego wcześniej kodu).
Zadanie
2: Firma
Napisz program składający się z dwóch klas DanePracownika i Firma.
W klasie DanePracownika zadeklaruj:
·
zmienne obiektowe przechowujące dane o pracowniku:
1.
imie i nazwisko
(dostępne w całym pakiecie),
2.
zarobki
(dostępne tylko w klasie DanePracownika),
·
zmienną przechowującą nazwę firmy wspólną dla wszystkich jej
instancji (nie obiektową!),
·
metodę zwracającą zarobki (bez żadnych ograniczeń),
·
metodę wyświetlającą imie i nazwisko,
·
konstruktor przypisujący wartości domyślne „brak imieia”, „brak_nazwiska” zarobki
=0;
·
zablokuj bezpośredni dostęp do zmiennych obiektowych w taki
sposób, aby zmiana ich wartości z poziomu obiektu odbywała się tylko przez
odpowiednio zadeklarowaną metodę o nazwie zmienZarobki
nie pozwalającą wprowadzić wartości zarobków mniejszą niż 1500 zł (wartość
powinny być wprowadzane jako argument tej funkcji).
W klasie Firma utwórz
trzy obiekty. Przypisz ich składowym
różne wartości pobrane z klawiatury.
Wszystkie wartości zapisane w obiekcie wyświetl na ekranie.
Zadanie
3: Firma2
Utwórz klasę Firma2 (główną klasę programu), w której zadeklaruj tablicę DanePracownika zadeklaruj
pozwalającą przechowywać obiekty typu DanePracownika (klasa z poprzedniego zadania – bez modyfikacji).
W pętli utwórz 5 obiektów pobierając
potrzebne dane z klawiatury oraz zapisz te obiekty do tablicy DanePracownika.
Wyświetl wszystkie wartości zapisanych w tablicy obiektów na
ekranie ().
Zadanie: 4 Gra w zgadywanie
Liczby
Stwórz klasę Gra, która będzie odpowiedzialna za całą logikę gry w
zgadywanie liczby.
Przebieg gry:
- po włączeniu nowej gry program losuje liczbę,
- program ustawia licznik prób na zero,
- użytkownik podaje swoją liczbę,
- program informuje czy jego liczba jest większa mniejsza lub czy
użytkownik odgadł liczbę,
- jeśli liczba jest różna wówczas użytkownik znowu podaje nową liczbę
- program zwiększa licznik
o jeden i cały cykl się powtarza do momentu odgadnięcia prawidłowej liczby
przez użytkownika.
- w momencie odgadnięcia gry na ekranie powinna pojawić się odpowiednia
informacja oraz informacja za którą próbą użytkownik odgadło liczbę.
Zadanie 5: Statystyki Obiektów
Stwórz klasę Samochod oraz klasę FabrykaSamochodow.
Zadanie
6: Własny pomysł
Napisz program według własnego pomysłu wykorzystujący wszystkie
opisane wcześniej mechanizmy i funkcje biblioteczne. Utworzone obiekty
przechowaj w tablicy.