Menu
Coddy logo textTech

Powtórka – Counter i Utility

Część sekcji Programowanie obiektowe ścieżki Java w Coddy. Lekcja 19 z 87.

challenge icon

Wyzwanie

Łatwy

Zbudujmy kompletny system, który łączy klasę Counter do śledzenia instancji z klasą narzędziową MathUtils — wykorzystując wszystko, czego nauczyłeś się o zmiennych statycznych, metodach statycznych, blokach statycznych i stałych.

Utworzysz trzy pliki, aby uporządkować swój kod:

  • Counter.java: Utwórz klasę, która śledzi liczbę utworzonych instancji:
    • Prywatna zmienna statyczna do zliczania łącznej liczby instancji
    • Prywatna zmienna instancji id, która przechowuje unikatowy identyfikator każdego licznika
    • Konstruktor, który zwiększa łączną liczbę i przypisuje bieżącą wartość licznika jako id tej instancji
    • Metoda getId(), która zwraca unikatowe id tego licznika
    • Metoda statyczna getTotalCount(), która zwraca liczbę utworzonych obiektów Counter
  • MathUtils.java: Utwórz klasę narzędziową zawierającą wyłącznie składowe statyczne (nigdy nie jest instancjonowana):
    • Publiczna stała PI o wartości 3.14159
    • Publiczna stała HALF o wartości 0.5
    • Metoda statyczna square(int n), która zwraca n do kwadratu
    • Metoda statyczna cube(int n), która zwraca n do sześcianu
    • Metoda statyczna circleArea(double radius), która zwraca PI * radius * radius
  • Main.java: Pokaż współpracę obu klas. Otrzymasz dwa dane wejściowe: liczbę do działań matematycznych oraz liczbę obiektów Counter do utworzenia. Wypisz:
    • Square: [value]
    • Cube: [value]
    • Circle area (radius=[number]): [value] (pole sformatowane do 2 miejsc po przecinku)
    • Dla każdego utworzonego licznika wypisz: Counter [id] created
    • Na koniec: Total counters: [count]

Otrzymasz dwa dane wejściowe: liczbę (int) do obliczeń matematycznych oraz liczbę (int) określającą, ile obiektów Counter utworzyć.

Pamiętaj, aby odwoływać się do składowych statycznych za pomocą nazwy klasy (na przykład MathUtils.PI i Counter.getTotalCount()) oraz używać String.format("%.2f", value) do formatowania wartości dziesiętnych.

Spróbuj swoich sił

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        int count = scanner.nextInt();
        
        // TODO: Użyj metod statycznych MathUtils, aby obliczyć i wypisać:
        // - Kwadrat: [value]
        // - Sześcian: [value]
        // - Circle area (radius=[number]): [value] (sformatowane do 2 miejsc po przecinku)
        
        // TODO: Utwórz 'count' obiektów Counter
        // Dla każdego utworzonego obiektu Counter wypisz: Counter [id] created
        
        // TODO: Wypisz łączną liczbę utworzonych liczników
        // Total counters: [count]
    }
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Java online