12 Pola i metody statyczne
Stwórz klasę
Person. Klasa powinna zawierać polenameoraz statyczne polecounter. Zadaniem jest zwiększanie wartościcounterza każdym razem, gdy tworzona jest nowa instancja klasyPerson. Dodaj metodę, która zwróci wartośćcounter. Stwórz przypadek testowy.Stwórz klasę
Mathematics, która posiada pole statycznePI, które przechowuje przybliżoną wartość liczby \(\pi\). Upewnij się, że wartość tego pola jest niemodyfikowalna. Stwórz przypadek testowy.Stwórz klasę
Singleton, która używa pola statycznego do przechowywania jednej i tylko jednej instancji tej klasy. Klasa powinna zawierać prywatny konstruktor oraz publiczną statyczną metodęgetInstance(), która zwraca jedyną instancję klasySingleton. Stwórz przypadek testowy.Stwórz klasę
Configuration, która zawiera pole statyczneapplicationVersionz domyślną wartością “1.0”. Dodaj metody pozwalające na odczyt i zmianę tej wartości. Stwórz przypadek testowy.Stwórz klasę
Calculator, która posiada podstawowe metody matematyczne: dodawanie, odejmowanie, mnożenie i dzielenie. Zaimplementuj te metody jako metody statyczne. Utwórz drugą klasę, w której przetestujesz te metody bez tworzenia instancji klasyCalculator.Stwórz klasę
ShapeFactory, która posiada metody statyczne do tworzenia różnych figur geometrycznych, takich jak koła, kwadraty czy trójkąty. Następnie stwórz klasę testową, w której wykorzystasz te metody do stworzenia różnych figur, bez potrzeby tworzenia instancji klasyShapeFactory.Stwórz klasę
Settings, która posiada różne parametry konfiguracyjne aplikacji (np. wersja, język). Dodaj metody niestatyczne do zmiany tych parametrów oraz statyczną metodędefaultSettings(), która zwróci domyślną konfigurację aplikacji. W klasie testowej zobacz, jak działają obie grupy metod i jakie są między nimi różnice.Utwórz klasę
Configuration, która posiada pole statyczneapplicationVersionoraz pole statyczneapplicationName. Jedno z tych pól oznacz jakofinal. Zastanów się, co by się stało, gdybyś chciał zaktualizować wartość jednego z tych pól w trakcie działania aplikacji.Stwórz klasę
Product, która zawiera pole statycznenumberOfProductsoraz pole statyczneMAX_PRODUCTS. PolenumberOfProductsbędzie służyć do zliczania ilości utworzonych produktów, aMAX_PRODUCTSdo ograniczenia ich liczby. Oznacz tylko jedno z tych pól słowem kluczowymfinali zastanów się nad konsekwencjami tego wyboru.W jednym projekcie wykonaj czynności:
A. Stwórz klasę SportsFacility, która powinna być umieszczona w pakiecie pl.edu.uwm.wmii.sports.
B. Klasa powinna zawierać trzy atrybuty:
type(typ obiektu), typuString.location, typuString.capacity(pojemność), typuint(w liczbie osób).
C. W klasie SportsFacility, zaimplementuj statyczną metodę createStadium(String type, String location, int capacity). Metoda ma zwrócić nowy obiekt typu SportsFacility, którego pola ustawione są z argumentów metody.
D. W klasie SportsFacility, zaimplementuj nie-statyczną metodę createFacility(String type, String location, int capacity). Metoda ma zwrócić nowy obiekt typu SportsFacility, którego pola ustawione są z argumentów metody.
E. Stwórz klasę TestSportsFacility, umieść ją w innym pliku w pakiecie pl.edu.uwm.wmii.sports. W klasie TestSportsFacility dodaj metodę main. Wywołaj w niej metody z punktu C i D.
- W jednym projekcie wykonaj czynności:
A. Stwórz klasę Software, która powinna być umieszczona w pakiecie pl.edu.uwm.wmii.software.
B. Klasa powinna zawierać trzy atrybuty:
type(typ oprogramowania), typuString.version, typuString.licenseCount(liczba licencji), typuint.
C. W klasie Software, zaimplementuj statyczną metodę isLicenseAvailable z argumentem typu Software. Metoda ma zwrócić wartość logiczną sprawdzającą czy liczba licencji oprogramowania przekazanego jako argument jest większa niż 3. Dla argumentu będącego nullem zwróć false.
D. W klasie Software, zaimplementuj nie-statyczną metodę isLicenseAvailable bez argumentu. Metoda ma zwrócić wartość logiczną sprawdzającą czy liczba licencji bieżącego obiektu jest większa niż 3.
E. Stwórz klasę TestSoftware, umieść ją w innym pliku w pakiecie pl.edu.uwm.wmii.software. W klasie TestSoftware dodaj metodę main. Wywołaj w niej metody z punktu C i D.