9  Pojęcie klasy/obiektu

  1. Utwórz klasę Dog z polami: name, breed i age. Napisz metodę bark(), która wydrukuje na konsoli "Wow Wow". Stwórz przypadek testowy, aby wywołać metodę co najmniej jeden raz.

  2. Stwórz klasę Car z polami: brand, model i speed. Napisz metody accelerate(int value) i decelerate(int value), które odpowiednio zwiększają i zmniejszają prędkość o podaną wartość. Stwórz przypadek testowy, aby wywołać każdą metodę co najmniej jeden raz.

  3. Stwórz klasę BankAccount z polem balance. Napisz metody deposit(double amount) i withdraw(double amount), które odpowiednio zwiększają i zmniejszają saldo o daną kwotę. Stwórz przypadek testowy, aby wywołać każdą metodę co najmniej jeden raz.

  4. Utwórz klasę Point z dwoma polami: x i y reprezentującymi współrzędne na płaszczyźnie. Napisz metodę distance(Point otherPoint), która oblicza odległość między bieżącym punktem a innym punktem. Stwórz przypadek testowy, aby wywołać metodę co najmniej jeden raz.

  5. Stwórz klasę Time z polami: hours i minutes. Napisz metodę addTime(Time otherTime), która dodaje do bieżącego czasu czas podany jako argument i zwraca nowy obiekt klasy Time. Zadbaj o to, aby minuty i godziny nie przekraczały odpowiednio 59 i 23. Stwórz przypadek testowy, aby wywołać metodę co najmniej jeden raz.

  6. Wykonaj po kolei dwa podpunkty:

    A. Stwórz klasę Car zawierającą publiczne pole brand. W klasie TestCar, utwórz obiekt klasy Car, przypisz mu wartość null i spróbuj odwołać się do pola brand. Jaki jest wynik?

    B. Zmodyfikuj kod z podpunktu A tak, aby sprawdzić, czy obiekt Car jest null przed odwołaniem się do pola brand. Jaki jest wynik?

  7. Utwórz klasę Person zawierającą pole name. W klasie TestPerson, utwórz dwa obiekty klasy Person - person1 i person2 - oba odnoszące się do tego samego obiektu. Zmień wartość pola name przez person1 i wydrukuj wartość pola name przez person2. Przeanalizuj wynik.

  8. Stwórz tablicę obiektów klasy Car (klasa zawiera publiczne pole brand). Następnie spróbuj odwołać się do pola brand jednego z obiektów w tablicy, nie inicjalizując wcześniej tablicy obiektami Car. Przeanalizuj wynik.

  9. Stwórz listę tablicową (ArrayList) obiektów klasy Person (klasa zawiera publiczne pole name). Następnie spróbuj odwołać się do pola name jednego z obiektów na liście, nie dodając wcześniej do listy żadnych obiektów Person. Przeanalizuj wynik.

  10. Utwórz klasę Dog z metodą bark, która wydrukuje wiadomość “Woof! Woof!”. W klasie TestDog utwórz obiekt Dog, przypisz mu wartość null i spróbuj wywołać metodę bark. Przeanalizuj wynik.

  11. Stwórz klasę Cat z polem name. Dodaj do klasy Cat metodę createCat, która zwraca nowy obiekt klasy Cat. Metoda powinna ustawiać pole name na podaną wartość, ale tylko jeśli wartość nie jest null. W przeciwnym razie powinna zwracać null. W klasie TestCat użyj metody createCat do stworzenia obiektu cat, a następnie spróbuj wydrukować wartość pola name. Co się stanie, jeśli przekażesz null jako argument do metody createCat? Przeanalizuj wynik.

  12. Wykonaj kolejno poniższe czynności:

    1. Stwórz klasę Person z polem name. Dodaj do klasy metodę introduceYourself, która wyświetli wiadomość “Hi, I’m” i imię osoby. W klasie TestPerson, utwórz obiekt Person i wywołaj na nim metodę introduceYourself. Czy musisz użyć słowo kluczowe this w implementacji metody?

    2. Dodaj do klasy Person metodę sayHello, która jako argument przyjmuje inny obiekt klasy Person i wyświetla wiadomość “Hello,” i imię drugiej osoby. Przeanalizuj działanie.

    3. Dodaj do klasy Person metodę changeName, która jako argument przyjmuje łańcuch znaków i przypisuje go do pola name. Utwórz obiekt Person i użyj metody changeName do zmiany jego imienia. Następnie wywołaj metodę introduceYourself. Czy imię zostało zmienione? Czy musisz użyć słowo kluczowe this w implementacji metody?

    4. Dodaj do klasy Person metodę swapNames, która jako argument przyjmuje inny obiekt klasy Person i zamienia imionami obie osoby. Utwórz dwa obiekty Person i użyj metody swapNames do zamiany ich imion. Następnie wywołaj metodę introduceYourself na obu obiektach. Czy imiona zostały zamienione?

  13. Wykonaj kolejno poniższe czynności:

    1. Stwórz klasę Counter z jednym polem number. Dodaj do klasy metodę increase, która przyjmuje parametr typu int i zwiększa wartość pola number o wartość tego parametru. W klasie TestCounter, utwórz zmienną typu int, przekaż ją do metody increase i sprawdź, czy wartość zmiennej zmieniła się po wywołaniu metody.

    2. Dodaj do klasy Counter metodę add, która przyjmuje inny obiekt Counter i dodaje wartość jego pola number do pola number bieżącego obiektu. Utwórz dwa obiekty Counter w klasie TestCounter i użyj metody add. Sprawdź, czy obiekt przekazany jako argument metody add zmienił swoją wartość po wywołaniu metody.

    3. Stwórz klasę Modifier, która posiada metodę changeValue, która jako argument przyjmuje typ int. Wewnątrz metody zmień wartość argumentu na inną. W klasie TestCounter utwórz zmienną int, a następnie przekaż ją do metody changeValue i sprawdź, czy wartość zmiennej się zmieniła.

    4. Dodaj do klasy Modifier metodę changeObject, która jako argument przyjmuje obiekt Counter. Wewnątrz metody zmień wartość pola number obiektu Counter na inną. W klasie TestCounter utwórz obiekt Counter, a następnie przekaż go do metody changeObject i sprawdź, czy wartość pola number obiektu się zmieniła.