11  Konstruktor

  1. Napisz klasę Book, która będzie zawierać trzy pola: title, author, publicationYear. Następnie zaimplementuj dwa konstruktory - jeden domyślny, który nie przyjmuje żadnych argumentów, i drugi, który przyjmuje trzy argumenty odpowiadające polom klasy. W przypadku drugiego konstruktora, nazwy parametrów muszą być takie same jak nazwy pól. Sprawdź czy jesteś w stanie prawidłowo przypisać wartości do pól klasy używając słowa kluczowego this.

  2. Zaprojektuj klasę Person, która będzie zawierać dwa pola: firstName, lastName. Zaimplementuj konstruktor, który przyjmuje dwa argumenty odpowiadające polom klasy. Nazwy parametrów muszą być takie same jak nazwy pól. Spróbuj przypisać wartości do pól klasy bez używania słowa kluczowego this. Czy jest to możliwe? Jeżeli nie, to dlaczego?

  3. Stwórz klasę Car, która będzie zawierać trzy pola: brand, model, productionYear. Zaimplementuj trzy konstruktory - pierwszy domyślny, drugi przyjmujący dwa argumenty (brand i model), trzeci przyjmujący trzy argumenty (brand, model, productionYear). W przypadku drugiego i trzeciego konstruktora, nazwy parametrów muszą być takie same jak nazwy pól. Wykorzystaj słowo kluczowe this do rozróżnienia pól klasy od parametrów.

  4. Napisz klasę Person, która będzie miała pola: firstName, lastName i age. Zdefiniuj w niej dwa konstruktory, jeden przyjmujący wszystkie trzy parametry, a drugi tylko imię i nazwisko. Drugi konstruktor powinien wywołać pierwszy, przekazując mu domyślną wartość wieku jako 0.

  5. Zaprojektuj klasę Square, która posiada pole side oraz konstruktor, który umożliwia ustawienie wartości tego pola. Następnie napisz drugi konstruktor, który nie przyjmuje żadnych argumentów, a jedynie wywołuje pierwszy konstruktor z wartością domyślną 1.

  6. Zdefiniuj klasę Car, która ma pola: brand, model i productionYear. Klasa powinna zawierać dwa konstruktory: pierwszy przyjmujący wszystkie trzy parametry, a drugi tylko markę i model. Drugi konstruktor powinien wywoływać pierwszy, przekazując mu domyślną wartość productionYear jako aktualny rok.

  7. Stwórz klasę Dog, która posiada pola: name, breed i age. Klasa powinna mieć dwa konstruktory: jeden, który przyjmuje wszystkie trzy parametry, a drugi, który przyjmuje tylko imię i rasę. Drugi konstruktor powinien wywoływać pierwszy, przekazując mu domyślną wartość wieku jako 1.

  8. Napisz klasę Student, która ma pola: firstName, lastName i fieldOfStudy. Zdefiniuj w niej dwa konstruktory, jeden przyjmujący wszystkie trzy parametry, a drugi tylko firstName i lastName. Drugi konstruktor powinien wywoływać pierwszy, przekazując mu domyślną wartość fieldOfStudy jako unknown.

  9. Zdefiniuj klasę Employee, która posiada pola: firstName, lastName i salary. Napisz konstruktor, który przyjmuje dwa argumenty (firstName i lastName), oraz blok inicjujący, który ustawia wartość salary na 3000. Sprawdź, co stanie się, gdy w konstruktorze spróbujesz nadpisać wartość salary.

  10. Zaprojektuj klasę Car, która posiada pola: brand, model i price. Napisz konstruktor, który przyjmuje dwa argumenty (brand i model), a w bloku inicjującym ustaw domyślną wartośćprice na 50000. Zobacz, co stanie się, gdy w konstruktorze spróbujesz zmienić wartość price.

  11. Zdefiniuj klasę Phone, która ma pola: manufacturer, model i operatingSystem. W bloku inicjującym ustaw wartość operatingSystem na Android. Następnie napisz konstruktor, który przyjmuje dwa argumenty (manufacturer i model) i próbuje nadpisać wartość operatingSystem na iOS. Sprawdź, która wartość zostanie ostatecznie przypisana do pola operatingSystem.

  12. Stwórz klasę Car zawierającą prywatne pola: brand, model, productionYear, mileage oraz color. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) dla wszystkich pól. Następnie dodaj metodę displayInformation(), która wyświetla wszystkie informacje o samochodzie.

  13. Stwórz klasę Person z prywatnymi polami: firstName, lastName, age, address. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę introduceYourself(), która zwraca łańcuch znaków z informacjami o osobie.

  14. Stwórz klasę Book z prywatnymi polami: title, author, publicationYear, publisher oraz numberOfPages. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę showInformation(), która wyświetla informacje o książce.

  15. Stwórz klasę Point2D z prywatnymi polami x i y, reprezentującymi współrzędne punktu na płaszczyźnie. Dodaj konstruktor, który przyjmuje współrzędne jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę distance(Point2D anotherPoint), która oblicza odległość między dwoma punktami na płaszczyźnie.

  16. Stwórz klasę Rectangle z prywatnymi polami width i height. Dodaj konstruktor, który przyjmuje długości boków jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metody area() i perimeter(), które obliczają pole powierzchni i obwód prostokąta.

  17. Stwórz klasę Circle z prywatnym polem radius. Dodaj konstruktor, który przyjmuje promień jako argument. Dodaj metody dostępowe (gettery i settery) oraz metody area() i circumference(), które obliczają pole powierzchni i obwód koła.

  18. Stwórz klasę Student z prywatnymi polami: firstName, lastName, indexNumber, yearOfStudy oraz gradeAverage. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę showInformation(), która wyświetla informacje o studencie.

  19. Stwórz klasę Employee z prywatnymi polami: firstName, lastName, position, age oraz salary. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę showInformation(), która wyświetla informacje o pracowniku.

  20. Stwórz klasę BankAccount z prywatnymi polami: accountNumber, owner, balance oraz accountType. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metody deposit(double amount) i withdraw(double amount), które odpowiednio dodają lub odejmują kwotę od salda konta.

  21. Stwórz klasę Television z prywatnymi polami: brand, screenDiagonal, resolution, isSmartTV oraz price. Dodaj konstruktor, który przyjmuje wszystkie pola jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę showInformation(), która wyświetla informacje o telewizorze.

  22. Stwórz klasę Gradebook z prywatnymi polami: firstName, lastName oraz grades (jako ArrayList typu int). Dodaj konstruktor, który przyjmuje firstName i lastName jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metody addGrade(int grade) i removeGrade(int index), które odpowiednio dodają lub usuwają ocenę z listy ocen. Dodaj również metodę averageGrade() do obliczania i zwracania średniej ocen.

  23. Stwórz klasę TemperatureHistory z prywatnym polem temperatures (jako ArrayList typu double). Dodaj konstruktor domyślny. Dodaj metody dostępowe (gettery i settery) oraz metody addTemperature(double temperature) i removeTemperature(int index), które odpowiednio dodają lub usuwają temperaturę z listy temperatur. Dodaj również metodę averageTemperature() do obliczania i zwracania średniej temperatur.

  24. Stwórz klasę Results (wyniki testu) z prywatnymi polami: firstName, lastName oraz results (jako tablica typu int). Dodaj konstruktor, który przyjmuje firstName, lastName oraz rozmiar tablicy jako argumenty. Dodaj metody dostępowe (gettery i settery) oraz metodę addResult(int index, int result), która dodaje wynik testu na podanym indeksie. Dodaj również metodę averageResult() do obliczania i zwracania średniego wyniku.

  25. Stwórz klasę TaskManager z prywatnym polem taskPriorities (jako ArrayList typu int). Dodaj konstruktor domyślny. Dodaj metody dostępowe (gettery i settery) oraz metody addPriority(int priority) i removePriority(int index), które odpowiednio dodają lub usuwają priorytet z listy priorytetów. Dodaj również metodę highestPriority() do znajdowania i zwracania wartości najwyższego priorytetu.

  26. Stwórz klasę Warehouse z prywatnym polem productQuantities (jako tablica typu int). Dodaj konstruktor, który przyjmuje rozmiar tablicy jako argument. Dodaj metody dostępowe (getters and setters) oraz metodę addProducts(int index, int quantity), która dodaje określoną ilość produktów na podanym indeksie. Dodaj również metodę totalProducts() do obliczania i zwracania sumy wszystkich produktów w magazynie.

  27. Zdefiniuj klasę Person, która posiada pola: firstName, lastName i age. Napisz konstruktor, który przyjmuje trzy argumenty i waliduje je przed przypisaniem do odpowiednich pól. Wiek osoby (age) nie powinien być ujemny, a firstName i lastName nie powinny być puste i nullem (w przypadku niepoprawnych wartości z osobna ustaw pusty napis lub zero).

  28. Stwórz klasę Point, reprezentującą punkt w przestrzeni 3D, z polami: x, y, z. Napisz konstruktor, który przyjmuje te trzy wartości i sprawdza, czy są one w zakresie od -100 do 100. Jeśli wartości nie są w tym zakresie, powinny być ustawione na najbliższą granicę.

  29. Zaprojektuj klasę Car, która posiada pola: brand, model i productionYear. Napisz konstruktor, który przyjmuje trzy argumenty. Zadaniem konstruktora jest sprawdzenie, czy productionYear nie jest większy niż aktualny rok oraz czy brand i model nie są puste i nullem (w przypadku niepoprawnych wartości z osobna ustaw pusty napis lub bieżący rok).

Wskazówka: wykorzystaj Calendar.getInstance().get(Calendar.YEAR) do pobrania aktualnego roku.

  1. Zdefiniuj klasę BankAccount, która posiada pola: accountNumber i balance. Napisz konstruktor, który przyjmuje dwa argumenty. Przed przypisaniem wartości do pola accountNumber, sprawdź, czy jest ono 26-cyfrowe, a przed przypisaniem wartości do pola balance, sprawdź, czy balance nie jest ujemne (w przypadku niepoprawności wartości ustaw numer konta na taki, by składał się z samych jedynek a saldo na zero).