12 Pola i metody statyczne
Stwórz klasę
Person
. Klasa powinna zawierać polename
oraz statyczne polecounter
. Zadaniem jest zwiększanie wartościcounter
za 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 statyczneapplicationVersion
z 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 statyczneapplicationVersion
oraz 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 statycznenumberOfProducts
oraz pole statyczneMAX_PRODUCTS
. PolenumberOfProducts
będzie służyć do zliczania ilości utworzonych produktów, aMAX_PRODUCTS
do ograniczenia ich liczby. Oznacz tylko jedno z tych pól słowem kluczowymfinal
i zastanów się nad konsekwencjami tego wyboru.