Menu
Coddy logo textTech

Stałe (static final)

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

Połączenie static i final tworzy stałą — wartość, która należy do klasy i nigdy nie może się zmienić. To standardowy sposób definiowania stałych w Javie.

public class GameSettings {
    public static final int MAX_PLAYERS = 4;
    public static final double GRAVITY = 9.81;
    public static final String GAME_TITLE = "Space Adventure";
}

Zgodnie z konwencją nazwy stałych zapisuje się w formacie UPPER_SNAKE_CASE, aby odróżnić je od zwykłych zmiennych. Ponieważ są zarówno static, jak i final, odwołujesz się do nich za pomocą nazwy klasy, a ich wartości na pewno nigdy się nie zmienią:

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Błąd! Nie można zmienić

Stałe są zazwyczaj deklarowane jako public, ponieważ mają być współdzielone w całej aplikacji. Pomyśl o wartościach takich jak Math.PI — to publiczna, statyczna stała finalna, której może używać dowolny kod.

Dlaczego używać stałych zamiast wartości zapisanych na sztywno? Jeśli w całym kodzie wpiszesz 4 i później trzeba będzie zmienić ją na 6, trzeba będzie znaleźć i zaktualizować każde wystąpienie. W przypadku stałej takiej jak MAX_PLAYERS zmieniasz ją w jednym miejscu.

Stałe sprawiają też, że kod jest bardziej czytelny — MAX_PLAYERS jest bardziej zrozumiałe niż tajemnicze 4.

challenge icon

Wyzwanie

Łatwy

Zbudujmy narzędzie MathConstants, które przechowuje ważne wartości matematyczne jako stałe, oraz CircleCalculator, które używa tych stałych do wykonywania obliczeń.

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

  • MathConstants.java: Utwórz klasę przechowującą stałe matematyczne w polach public static final:
    • PI o wartości 3.14159
    • E (liczba Eulera) o wartości 2.71828
    • GOLDEN_RATIO o wartości 1.61803
    Pamiętaj, aby używać formatu UPPER_SNAKE_CASE dla nazw stałych!
  • Main.java: Użyj swoich stałych do obliczeń dotyczących okręgu. Otrzymasz promień jako dane wejściowe i wypiszesz trzy wiersze:
    • Pole okręgu: Area: [value]
    • Obwód okręgu: Circumference: [value]
    • Średnica pomnożona przez złoty stosunek: Golden Diameter: [value]

Wykonaj obliczenia według wzorów:

  • Pole = PI * radius * radius
  • Obwód = 2 * PI * radius
  • Złota średnica = 2 * radius * GOLDEN_RATIO

Otrzymasz jedną daną wejściową: promień (double).

Sformatuj wszystkie wartości wyjściowe do 2 miejsc po przecinku, używając String.format("%.2f", value). Odwołuj się do stałych przez nazwę klasy, na przykład MathConstants.PI.

Spróbuj swoich sił

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        
        // TODO: Oblicz pole, używając MathConstants.PI
        // Wzór: PI * radius * radius
        
        // TODO: Oblicz obwód, używając MathConstants.PI
        // Wzór: 2 * PI * radius
        
        // TODO: Oblicz złotą średnicę, używając MathConstants.GOLDEN_RATIO
        // Wzór: 2 * radius * GOLDEN_RATIO
        
        // TODO: Wypisz wyniki z dokładnością do 2 miejsc po przecinku
        // Użyj String.format("%.2f", value) do formatowania
        // Format wyjściowy:
        // Pole: [value]
        // Circumference: [value]
        // Golden Diameter: [value]
        
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Java online