Menu
Coddy logo textTech

Getter- und Setter-Methoden

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

Getter und Setter sind Methoden, die kontrollierten Zugriff auf private Felder ermöglichen. Ein Getter ruft den Wert eines Feldes ab, während ein Setter ihn ändert.

Die Namenskonvention folgt einem Standardmuster: Präfix get oder set, gefolgt vom Feldnamen, dessen erster Buchstabe großgeschrieben wird.

public class Product {
    private String name;
    private double price;
    
    // Getter für name
    public String getName() {
        return name;
    }
    
    // Setter für name
    public void setName(String name) {
        this.name = name;
    }
    
    // Getter für price
    public double getPrice() {
        return price;
    }
    
    // Setter mit Validierung
    public void setPrice(double price) {
        if (price >= 0) {
            this.price = price;
        }
    }
}

Die wahre Stärke von Settern liegt in der Möglichkeit, Validierungslogik hinzuzufügen. Im obigen Beispiel akzeptiert setPrice nur nicht-negative Werte und schützt das Objekt so vor ungültigen Daten.

Für boolean Felder verwenden Getter normalerweise das Präfix is anstelle von get:

private boolean active;

public boolean isActive() {
    return active;
}

Sie können auch schreibgeschützte Felder erstellen, indem Sie nur einen Getter bereitstellen, oder nur beschreibbare Felder, indem Sie nur einen Setter bereitstellen. Dies gibt Ihnen eine feingranulare Kontrolle darüber, wie externer Code mit den Daten Ihres Objekts interagiert.

challenge icon

Aufgabe

Einfach

Lass uns einen Temperature-Konverter erstellen, der die Leistungsfähigkeit von Gettern und Settern mit Validierungslogik demonstriert.

Du wirst zwei Dateien erstellen, um deinen Code zu organisieren:

  • Temperature.java: Definiere eine Temperature-Klasse, die einen Temperaturwert in Celsius speichert. Die Klasse sollte Folgendes enthalten:
    • Ein privates celsius-Feld (double)
    • Ein privates valid-Feld (boolean), das verfolgt, ob die Temperatur physikalisch möglich ist
    • Einen Getter getCelsius(), der den Celsius-Wert zurückgibt
    • Einen Setter setCelsius(), der nur Werte ab dem absoluten Nullpunkt (-273.15) akzeptiert. Wenn der Wert gültig ist, setze valid auf true; andernfalls ändere celsius nicht und setze valid auf false
    • Einen Getter isValid() für das boolesche Feld (denke daran: Boolesche Getter verwenden das Präfix is)
    • Einen Getter getFahrenheit(), der die Temperatur mithilfe der Formel (celsius * 9/5) + 32 in Fahrenheit umrechnet und zurückgibt
  • Main.java: Erstelle ein Temperature-Objekt, lies einen Celsius-Wert als Eingabe ein, verwende den Setter, um ihn zu setzen, und gib anschließend aus, ob die Temperatur gültig ist, sowie ihr Fahrenheit-Äquivalent. Formatiere deine Ausgabe als zwei Zeilen:
    • Valid: true oder Valid: false
    • Fahrenheit: X.X (mit einer Dezimalstelle)

Du erhältst eine Eingabe: einen double-Wert, der eine Temperatur in Celsius darstellt.

Um die Fahrenheit-Ausgabe auf eine Dezimalstelle zu formatieren, kannst du String.format("%.1f", value) verwenden.

Probier es selbst

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double celsiusInput = scanner.nextDouble();
        
        // TODO: Erstelle ein Temperature-Objekt
        
        // TODO: Verwende den Setter, um den celsius-Wert zu setzen
        
        // TODO: Gib aus, ob die Temperatur gültig ist (Format: "Valid: true" oder "Valid: false")
        
        // TODO: Gib den entsprechenden Fahrenheit-Wert aus (Format: "Fahrenheit: X.X")
        // Hinweis: Verwende String.format("%.1f", value) für eine Dezimalstelle
    }
}
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

Übe selbstständig: Online-Java-Compiler