Menu
Coddy logo textTech

Konstanten (static final)

Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy — Lektion 18 von 87.

Die Kombination von static und final erzeugt eine Konstante – einen Wert, der zur Klasse gehört und niemals geändert werden kann. Dies ist die Standardmethode, um Konstanten in Java zu definieren.

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";
}

Konventionsgemäß verwenden Konstantennamen UPPER_SNAKE_CASE, um sie von regulären Variablen zu unterscheiden. Da sie sowohl static als auch final sind, greift man über den Klassennamen auf sie zu und es ist garantiert, dass sich ihre Werte niemals ändern:

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Fehler! Kann nicht geändert werden

Konstanten werden normalerweise als public deklariert, da sie dazu gedacht sind, in Ihrer gesamten Anwendung gemeinsam genutzt zu werden. Denken Sie an Werte wie Math.PI – es handelt sich um eine public static final Konstante, die jeder Code verwenden kann.

Warum sollte man Konstanten anstelle von fest codierten Werten verwenden? Wenn Sie 4 überall in Ihrem Code schreiben und diese später in 6 ändern müssen, müssten Sie jedes Vorkommen finden und aktualisieren. Mit einer Konstante wie MAX_PLAYERS ändern Sie sie an einer einzigen Stelle.

Konstanten machen den Code zudem lesbarer – MAX_PLAYERS ist klarer als eine mysteriöse 4.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein MathConstants-Utility erstellen, das wichtige mathematische Werte als Konstanten speichert, zusammen mit einem CircleCalculator, der diese Konstanten für Berechnungen verwendet.

Sie werden zwei Dateien erstellen, um Ihren Code zu organisieren:

  • MathConstants.java: Erstellen Sie eine Klasse, die mathematische Konstanten unter Verwendung von public static final Feldern enthält:
    • PI mit dem Wert 3.14159
    • E (Eulersche Zahl) mit dem Wert 2.71828
    • GOLDEN_RATIO mit dem Wert 1.61803
    Denken Sie daran, UPPER_SNAKE_CASE für Konstantennamen zu verwenden!
  • Main.java: Verwenden Sie Ihre Konstanten, um Kreisberechnungen durchzuführen. Sie erhalten einen Radius als Eingabe und geben drei Zeilen aus:
    • Die Fläche des Kreises: Area: [value]
    • Der Umfang des Kreises: Circumference: [value]
    • Der mit dem Goldenen Schnitt skalierte Durchmesser: Golden Diameter: [value]

Für die Berechnungen:

  • Area = PI * radius * radius
  • Circumference = 2 * PI * radius
  • Golden Diameter = 2 * radius * GOLDEN_RATIO

Sie erhalten eine Eingabe: den Radius (double).

Formatieren Sie alle Ausgabewerte auf 2 Dezimalstellen mit String.format("%.2f", value). Greifen Sie auf Ihre Konstanten über den Klassennamen zu, wie MathConstants.PI.

Spickzettel

Die Kombination von static und final erzeugt eine Konstante – einen Wert, der zur Klasse gehört und niemals geändert werden kann:

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";
}

Konventionsgemäß verwenden Konstantennamen UPPER_SNAKE_CASE. Greifen Sie über den Klassennamen auf Konstanten zu:

System.out.println(GameSettings.MAX_PLAYERS);  // 4
// GameSettings.MAX_PLAYERS = 8;  // Fehler! Kann nicht geändert werden

Konstanten werden normalerweise als public deklariert, um in der gesamten Anwendung geteilt zu werden. Sie machen den Code wartbarer und lesbarer, indem sie fest codierte Werte durch aussagekräftige Namen ersetzen.

Probier es selbst

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        
        // TODO: Berechne die Fläche unter Verwendung von MathConstants.PI
        // Formel: PI * radius * radius
        
        // TODO: Berechne den Umfang unter Verwendung von MathConstants.PI
        // Formel: 2 * PI * radius
        
        // TODO: Berechne den Goldenen Durchmesser unter Verwendung von MathConstants.GOLDEN_RATIO
        // Formel: 2 * radius * GOLDEN_RATIO
        
        // TODO: Gib die Ergebnisse auf 2 Dezimalstellen formatiert aus
        // Verwende String.format("%.2f", value) für die Formatierung
        // Ausgabeformat:
        // Area: [value]
        // Circumference: [value]
        // Golden Diameter: [value]
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung