- Stwórz program (plik
Program.cs
), zadeklaruj w nim zmiennącarName
i przypisz mu wartość"Mój samochód"
. Wynik wyświetl na ekranie. - W tym samym projekcie stwórz klasę
Car
, w której będzie można przechowywać markę samochodu i rok produkcji (zmienne marka i rok) (zapisz ją w plikuCar.cs
). - Zmodyfikuj klasę
Car
, aby wszystkie zmienne były zadeklarowane jako prywatne. - Stwórz nowy obiekt klasy
Car
w plikuProgram.cs
jakocar1
, ustaw dla niego dowolną markę i rok produkcji, wyświetl to na ekranie. Popraw kod, aby program działał poprawnie. - Stwórz drugi obiekt
car2
typuCar
, przypisz mu dowolne wartości i wyświetl na ekranie. - Przypisz do siebie wartości
car1
icar2
(car1 = car2
) i ponownie sprawdź na ekranie jakie wartości otrzymasz. - Zakomentuj kod do punktu 5 i 6.
- Utwórz prywatne pola klasy
Car
o nazwie:model
,iloscDrzwi
,pojemnoscSilnika
oraz publicznesrednieSpalanie
. Narysuj dla klasyCar
diagram UML (kolejne czynności uzupełniaj na diagramie).
- Stwórz program (plik
Main.java
), zadeklaruj w nim zmiennącarName
i przypisz mu wartość"Mój samochód"
. Wynik wyświetl na ekranie. - W tym samym projekcie stwórz klasę
Car
, w której będzie można przechowywać markę samochodu i rok produkcji (zmienne marka i rok) (zapisz ją w plikuCar.java
). - Zmodyfikuj klasę
Car
, aby wszystkie zmienne były zadeklarowane jako prywatne. - Stwórz nowy obiekt klasy
Car
w plikuMaina.java
jakocar1
, ustaw dla niego dowolną markę i rok produkcji, wyświetl to na ekranie. Popraw kod, aby program działał poprawnie. - Stwórz drugi obiekt
car2
typuCar
, przypisz mu dowolne wartości i wyświetl na ekranie. - Przypisz do siebie wartości
car1
icar2
(car1 = car2
) i ponownie sprawdź na ekranie jakie wartości otrzymasz. - Zakomentuj kod do punktu 5 i 6.
- Utwórz prywatne pola klasy
Car
o nazwie:model
,iloscDrzwi
,pojemnoscSilnika
oraz publicznesrednieSpalanie
. Narysuj dla klasyCar
diagram UML (kolejne czynności uzupełniaj na diagramie).
Definicja klasy:
modyfikator_dostępu class NazwaKlasy
{
deklaracje pól i metod
}
Modyfikatory dostępu - umożliwiają określenie dostępu do danego elementu z zewnątrz klasy.
UML - UML (Unified Modelling Language) - graficzny system wizualizacji, specyfikowania oraz dokumentowania składników systemów informatycznych.
Nazwa klasy:
modyfikator NazwaKlasy ustawienia
Pola klasy:
modyfikator nazwaPola: typ = wartoscPoczatkowa ustawienia
Metody
modyfikator NazwaMetody(parametr1, …): typ ustawienia
- Stwórz w programie dwie klasy
Pies
iWlascicielPsa
. Pies musi być wyprowadzony na spacer jeśli spożywał posiłek więcej niż 5 godzin wcześniej. W klasie Pies dodaj metody:
UstawCzasPosilku(int)
, która ustawia ile godzin temu pies zjadł posiłek;PobierzCzasPosilku()
, która pobiera czas posiłku;PotrzebnySpacer()
, która zwraca true gdy pies musi być wyprowadzony na spacer.
W klasie WlasicielPsa
dodaj metodę ZabierzNaSpacer(Pies)
, która zwraca true gdy pies (będący parametrem metody) musi być wyprowadzony na spacer.
W metodzie Main
przetestuj działanie powyższych metod.
- Na podstawie diagramu UML stwórz klasę. Następnie w klasie
Program
stwórz co najmniej trzy obiekty, na których wykonasz co najmniej po jednym razie każdą metodą i przypiszesz obiektowi co najmniej jedno pole (możesz stworzyć brakujące metody, ale nie możesz modyfikować modyfikatorów dostępu na diagramie).
- Wykonaj w ramach jednego projektu następujące polecenia:
- Stwórz klasę
Car
. - Stwórz w niej nowe prywatne pola
double pojemonoscSilnika
,string marka
. - Stwórz obiekt typu
Car
, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne). - Do klasy
Car
dodaj samodzielnie napisany konstruktor bez parametru. - Przeciąż konstruktor tworząc nowy:
Car(double pojemonoscSilnika, string marka)
. Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatorathis
). - Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
- Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
- Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
- W klasie
Car
stwórz metodęCreate()
, która będzie zwracać obiekt.
Hermetyzacja:
- Zapewnia utrzymanie właściwego stanu klasy. Pola klasy są inicjowane, modyfikowane i odczywywane w sposób przewidziany przez autora klasy.
- Ukrycie wewnętrznego stanu klasy, a udostępnienie tylko tego co jest niezbędne do komunikacji z innymi klasami
- Użycie odpowiednich modyfikatorów dostępu do pól i metod,
- Innymi słowy, nie pozwalajcie innym mieszać w stanie waszej klasy, gdyż to utrudnia odnajdywanie błędów.
Przykładowe zadanie polega na napisaniu klasy Licznik
, ma być ona wykorzystywana w wielu modułach zliczających rozpoczęcie i zakończenie jakiegoś zdarzenia. Licznik nie może być mniejszy od 0. Klasa Licznik
ma 3 metody Zwiększ()
, Zmniejsz()
, WypiszStan()
.
- Wykonaj w ramach jednego projektu następujące polecenia:
- Stwórz klasę
Car
. - Stwórz w niej nowe prywatne pola
double pojemonoscSilnika
,String marka
. - Stwórz obiekt typu
Car
, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne). - Do klasy
Car
dodaj samodzielnie napisany konstruktor bez parametru. - Przeciąż konstruktor tworząc nowy:
Car(double pojemonoscSilnika, String marka)
. Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatorathis
). - Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
- Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
- Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
- W klasie
Car
stwórz metodęCreate()
, która będzie zwracać obiekt.