Obraz zawierający tekst, Czcionka, Grafika

Opis wygenerowany automatycznie 

Kierunek Informatyka

 

Instrukcja do ćwiczeń laboratoryjnych nr:

3

Nazwa przedmiotu:
Programowanie w języku Java

Temat: Specyfikatory dostępu, przeciążanie metod i konstruktorów. Wykorzystanie składowych z klas bibliotecznych, tablice.

Tryb studiów: stacjonarne

Czas trwanie ćw.

2x45 min

Autor materiałów: dr Marcin Skuba

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):

 

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.



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.

Obraz zawierający Czcionka, tekst, Grafika, typografia

Zawartość wygenerowana przez AI może być niepoprawna.

Przykład:

Obraz zawierający Czcionka, tekst, zrzut ekranu, Grafika

Zawartość wygenerowana przez AI może być niepoprawna.

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

 

Zadanie 1: Losowanie

 

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ę.

 

  1. Klasa Gra powinna zawierać:
  2. Klasa Rozgrywka (główna klasa programu), w której należy stworzyć obiekt reprezentujący grę oraz uruchomić odpowiednie metody zapewniając rozgrywkę.

 

Zadanie 5: Statystyki Obiektów

Stwórz klasę Samochod oraz klasę FabrykaSamochodow.

  1. Klasa Samochod:
  2. Klasa 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.