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.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 null
em 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.