Menu
Coddy logo textTech

Das Haustier definieren

Teil des Abschnitts Object Oriented Programming der Rust-Journey von Coddy — Lektion 19 von 61.

challenge icon

Aufgabe

Einfach

Willkommen zum Virtual Pet Projekt! In den nächsten Lektionen wirst du eine komplette Haustiersimulation bauen, die alles zusammenführt, was du über Structs, Methoden, Module und Kapselung gelernt hast.

Lass uns mit dem Bau deines Virtual Pet beginnen! In diesem ersten Schritt legst du das Fundament, indem du ein Pet-Struct in einem eigenen Modul mit ordnungsgemäßer Kapselung erstellst.

Du wirst deinen Code über zwei Dateien organisieren:

  • pet.rs: Definiere dein Pet-Struct mit drei privaten Feldern: name (String), energy (u32) und hunger (u32). Implementiere eine öffentliche assoziierte Funktion new, die einen Namen entgegennimmt und ein Haustier erstellt, bei dem energy auf 100 und hunger auf 0 gesetzt ist. Füge außerdem eine öffentliche Getter-Methode name hinzu, die eine Referenz auf den Namen des Haustiers zurückgibt.
  • main.rs: Deklariere das pet-Modul und bringe Pet in den Gültigkeitsbereich. Lies einen Namen von der Eingabe ein, erstelle ein neues Haustier mit diesem Namen und gib eine Willkommensnachricht aus.

Deine Willkommensnachricht sollte diesem Format folgen:

Welcome, {name}!

Wenn die Eingabe zum Beispiel Buddy ist, sollte die Ausgabe wie folgt aussehen:

Welcome, Buddy!

Denke daran, dass das Struct öffentlich sein sollte, damit es von main.rs aus verwendet werden kann, aber die Felder sollten privat bleiben – nur zugänglich über die von dir bereitgestellten Methoden.

Probier es selbst

mod pet;

use pet::Pet;

fn main() {
    let mut name = String::new();
    std::io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();

    // TODO: Erstelle ein neues Haustier (Pet) mit dem angegebenen Namen

    // TODO: Gib die Willkommensnachricht unter Verwendung des Namens-Getters des Haustiers aus
    // Format: "Welcome, {name}!"
}

Alle Lektionen in Object Oriented Programming