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
Carz 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
Carz 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 currentYearreprezentujący obecny rok. - Dodaj metodę:
int getCarAge(), która oblicza i zwraca wiek samochodu na podstawie różnicy międzycurrentYeara 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 currentYearreprezentujący obecny rok. - Dodaj metodę:
int getCarAge(), która oblicza i zwraca wiek samochodu na podstawie różnicy międzycurrentYeara 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 klasyCari 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,modeliyeardwóch obiektów klasyCari 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.