W tym laboratorium będziesz ćwiczyć podstawowe pojęcia programowania obiektowego (OOP) poprzez stworzenie prostych klas w językach C++ oraz Java. Dzięki temu zrozumiesz podstawy definicji klas, obiektów, atrybutów oraz metod, które są kluczowymi elementami OOP.
Zaimplementujesz klasę Car
zarówno w C++, jak i w Javie, aby poćwiczyć pisanie prostych definicji klas, konstruktorów i metod.
Pod koniec tego laboratorium będziesz w stanie:
- Zrozumieć i zaimplementować prostą klasę z atrybutami i metodami.
- Użyć konstruktorów do inicjalizacji atrybutów klasy.
- Utworzyć obiekty z klasy.
- Wywołać metody na obiekcie i wyświetlić wartości atrybutów.
- Zapoznać się z IDE dla C++ i Java.
-
Skonfiguruj środowisko:
- Otwórz swoje IDE (np. Visual Studio lub dowolne środowisko C++).
- Utwórz nowy projekt o nazwie
Lab1_CPP
.
-
Utwórz klasę
Car
:- Zdefiniuj klasę o nazwie
Car
z następującymi atrybutami:string make
(Marka samochodu, np. Toyota, Honda).string model
(Model samochodu, np. Corolla, Civic).int year
(Rok produkcji, np. 2020, 2019).
- Zdefiniuj klasę o nazwie
-
Metody klasy:
- Utwórz konstruktor, który zainicjalizuje atrybuty klasy.
- Napisz metodę
void displayInfo()
, aby wyświetlić szczegóły samochodu.
-
Napisz funkcję główną (main):
- W funkcji
main()
utwórz obiekt klasyCar
. - Wywołaj metodę
displayInfo()
, aby wyświetlić szczegóły samochodu.
- W funkcji
- Skonfiguruj środowisko:
- Otwórz swoje IDE dla Javy (np. IntelliJ IDEA lub Eclipse).
- Utwórz nowy projekt o nazwie
Lab1_Java
.
- Utwórz klasę Car:
- Zdefiniuj klasę o nazwie
Car
z następującymi atrybutami:String make
(Marka samochodu, np. Toyota, Honda).String model
(Model samochodu, np. Corolla, Civic).int year
(Rok produkcji, np. 2020, 2019).
- Metody klasy:
- Utwórz konstruktor, aby zainicjalizować atrybuty klasy.
- Napisz metodę
void displayInfo()
, aby wyświetlić szczegóły samochodu.
- Napisz metodę główną (main):
- W metodzie
main()
utwórz obiekt klasyCar
. - Wywołaj metodę
displayInfo()
, aby wyświetlić szczegóły samochodu.
Po ukończeniu zadań, zastanów się nad następującymi pytaniami:
- Dlaczego ważne jest używanie specyfikatorów dostępu private dla atrybutów?
- Co się stanie, jeśli zmienisz specyfikator dostępu atrybutów na public? Spróbuj to zrobić i zaobserwuj zmiany.
- Czy możesz utworzyć wiele obiektów klasy Car? Jeśli tak, jak każdy obiekt przechowuje swoje własne atrybuty?
Rozszerz klasę Car
, dodając nowe atrybuty oraz metodę do obliczania wieku samochodu.
- Zmodyfikuj klasę
Car
, dodając: Atrybutint currentYear
reprezentujący obecny rok. - Dodaj metodę:
int getCarAge()
, która oblicza i zwraca wiek samochodu na podstawie różnicy międzycurrentYear
a rokiem produkcji samochodu (year
). - Zaktualizuj funkcję
main()
: Utwórz obiekt klasyCar
. WywołajgetCarAge()
i wyświetl wiek samochodu.
Rozszerz klasę Car
, dodając metodę do obliczania wieku samochodu.
- Zmodyfikuj klasę
Car
, dodając: Atrybutint currentYear
reprezentujący obecny rok. - Dodaj metodę:
int getCarAge()
, która oblicza i zwraca wiek samochodu na podstawie różnicy międzycurrentYear
a rokiem produkcji samochodu (year
). - Zaktualizuj metodę
main()
: Utwórz obiekt klasyCar
. WywołajgetCarAge()
i wyświetl wiek samochodu.
Dodaj funkcjonalność, która porównuje dwa obiekty Car
i sprawdza, czy są takie same (na podstawie make
, model
oraz year
).
- Dodaj metodę:
bool isSameCar(Car otherCar)
, która porównuje make, model i year dwóch obiektów klasyCar
i zwracatrue
, jeśli są takie same, w przeciwnym raziefalse
. - Zaktualizuj funkcję
main()
: Utwórz dwa obiekty klasyCar
. Wywołaj metodęisSameCar()
i sprawdź, czy dwa samochody są takie same, a następnie wyświetl wynik.
Dodaj funkcjonalność, która porównuje dwa obiekty Car
i sprawdza, czy są takie same (na podstawie make
, model
oraz year
).
- Dodaj metodę:
boolean isSameCar(Car otherCar)
, która porównujemake
,model
iyear
dwóch obiektów klasyCar
i zwracatrue
, jeśli są takie same, w przeciwnym raziefalse
. - Zaktualizuj metodę
main()
: Utwórz dwa obiekty klasyCar
. Wywołaj metodęisSameCar()
i sprawdź, czy dwa samochody są takie same, a następnie wyświetl wynik.
Wykonaj zadanie krok po kroku w C++ i Javie (utwórz dwa nowe pliki dla tego zadania):
- Zbuduj klasę
Parrot
, która potrafi wypowiadać frazę, która jest predefiniowana w opisie klasy (metodasay
). - Zmodyfikuj klasę z zadania
1.
tak, aby fraza była ustawiana podczas tworzenia konkretnej instancji. - Zmodyfikuj klasę z zadania
2.
tak, aby fraza mogła być zmieniana podczas działania programu. - Zmodyfikuj klasę z zadania
3.
tak, aby można było określić liczbę powtórzeń podczas wywoływania metody say. - Zmodyfikuj klasę z zadania
4.
tak, aby można było dodawać frazy do zbioru fraz, które zna papuga. Gdy wywoływana jest metodasay
, papuga wypowiada losową frazę ze swojego zbioru.