Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Java-Klassen, Objekte und Methoden: Ein praxisnahes Tutorial für Lab 5 (ICS 141)

Lerne in diesem Tutorial, wie du in Java eigene Klassen mit Instanzvariablen, Konstruktoren, Gettern/Settern und Methoden erstellst – inklusive Beispielen aus der Welt der Smart-Home-Geräte.

Java Klassen Objekte in Java Methoden in Java ICS 141 Lab 5 Java Tutorial Deutsch Parameterisierter Konstruktor Java Getter Setter Java toString Methode Java Statische Methode Java Objektorientierte Programmierung Java Java Übungen Smart Thermostat Java Beispiel Datenkapselung Java UML Klassendiagramm Java Driver Klasse Eclipse Java Export

Einführung in Java-Klassen, Objekte und Methoden

In diesem Tutorial lernst du die grundlegenden Konzepte der objektorientierten Programmierung (OOP) in Java kennen: Klassen, Objekte und Methoden. Diese Konzepte sind essenziell für jede Java-Entwicklung – von einfachen Konsolen-Apps bis hin zu komplexen Anwendungen wie einem Smart-Home-Steuerungssystem, das aktuelle Trends wie vernetzte Geräte aufgreift. Stell dir vor, du programmierst eine Smart-Thermostat-Klasse, die Temperatur, Modus und Zeitplan verwaltet. Genau solche Beispiele helfen dir, die Theorie hinter Lab 5 zu verstehen.

1. Eine reale Klasse modellieren

Wähle ein Objekt aus der realen Welt, das nicht Auto, Tier oder Buch ist. Ein Smart-Thermostat ist ideal: Es hat Instanzvariablen wie temperatur (double), modus (String: "heizen", "kühlen") und zeitplan (String: "07:00-22:00"). Erstelle eine Klasse mit diesen Variablen.

public class SmartThermostat {
    private double temperatur;
    private String modus;
    private String zeitplan;

    // Parameterisierter Konstruktor
    public SmartThermostat(double temperatur, String modus, String zeitplan) {
        this.temperatur = temperatur;
        this.modus = modus;
        this.zeitplan = zeitplan;
    }

Getter und Setter

Füge für jede Instanzvariable eine Getter- und Setter-Methode hinzu, um den Datenkapselung-Prinzip zu folgen.

    public double getTemperatur() {
        return temperatur;
    }
    public void setTemperatur(double temperatur) {
        this.temperatur = temperatur;
    }
    public String getModus() {
        return modus;
    }
    public void setModus(String modus) {
        this.modus = modus;
    }
    public String getZeitplan() {
        return zeitplan;
    }
    public void setZeitplan(String zeitplan) {
        this.zeitplan = zeitplan;
    }

toString()-Methode

Überschreibe die toString()-Methode, um den Zustand des Objekts auszugeben.

    @Override
    public String toString() {
        return "SmartThermostat{" +
                "temperatur=" + temperatur +
                ", modus='" + modus + '\'' +
                ", zeitplan='" + zeitplan + '\'' +
                '}';
    }

2. Zusätzliche Methoden entwerfen

Entwickle vier Methoden, die das Verhalten des Thermostats abbilden: eine void-Methode, eine int-Methode, eine String-Methode und eine statische Methode.

    // void-Methode: schaltet den Modus um
    public void modusUmschalten() {
        if (modus.equals("heizen")) {
            modus = "kühlen";
        } else {
            modus = "heizen";
        }
    }

    // int-Methode: gibt die Temperatur in Celsius als int zurück
    public int temperaturAlsInt() {
        return (int) temperatur;
    }

    // String-Methode: gibt eine Zusammenfassung zurück
    public String zusammenfassung() {
        return "Temperatur: " + temperatur + "°C, Modus: " + modus;
    }

    // statische Methode: gibt den Standard-Zeitplan zurück
    public static String standardZeitplan() {
        return "07:00-22:00";
    }

3. Objekte erzeugen und nutzen

Erstelle eine Treiberklasse SmartThermostatDriver, instanziiere zwei Objekte und gib ihre Details aus.

public class SmartThermostatDriver {
    public static void main(String[] args) {
        SmartThermostat thermostat1 = new SmartThermostat(22.5, "heizen", "06:00-23:00");
        SmartThermostat thermostat2 = new SmartThermostat(18.0, "kühlen", "08:00-20:00");

        System.out.println(thermostat1);
        System.out.println(thermostat2);

        thermostat1.modusUmschalten();
        System.out.println("Nach Umschalten: " + thermostat1);

        System.out.println("Temperatur als int: " + thermostat1.temperaturAlsInt());
        System.out.println(thermostat1.zusammenfassung());
        System.out.println("Standard-Zeitplan: " + SmartThermostat.standardZeitplan());
    }
}

4. Theoretische Fragen (in Kommentaren)

Beantworte die folgenden Fragen direkt im Code als Kommentare. Dies hilft dir, das Verständnis für Klassen, Objekte und Methoden zu vertiefen.

/*
 * 1. Ähnlichkeiten: Klasse, Objekt und Methode sind alle Bestandteile der OOP.
 *    Eine Klasse definiert den Bauplan, ein Objekt ist eine Instanz dieser Klasse,
 *    und Methoden definieren das Verhalten eines Objekts.
 *
 * 2. Unterschiede: Eine Klasse ist ein abstrakter Datentyp, ein Objekt ist eine
 *    konkrete Instanz mit Zustand, und eine Methode ist eine ausführbare Operation.
 *
 * 3. Wichtigkeit von UML: UML (Unified Modeling Language) hilft, die Struktur
 *    und Beziehungen von Klassen visuell darzustellen, was die Planung und
 *    Kommunikation im Team erleichtert.
 *
 * 4. static bei Methoden: Eine statische Methode gehört zur Klasse, nicht zu
 *    einem Objekt. Sie kann ohne Objektinstanz aufgerufen werden (z.B. Math.sqrt()).
 *
 * 5. Konstruktor: Wenn keine Klasse einen Konstruktor definiert, stellt Java
 *    einen standardmäßigen parameterlosen Konstruktor bereit. Ein eigener
 *    Konstruktor ermöglicht die Initialisierung von Instanzvariablen beim Erzeugen.
 *
 * 6. Unterschied Konstruktor vs. Klasse: Ein Konstruktor ist eine spezielle Methode
 *    zur Initialisierung, während eine Klasse den Bauplan für Objekte definiert.
 */

Export und Abgabe

Exportiere dein Projekt als ZIP-Datei (Rechtsklick auf src → Export → als ZIP). Benenne die Datei nach deinem Namen, z.B. DillonLab5.zip, und lade sie im D2L-Kurs hoch.

Mit diesem Tutorial hast du die Grundlagen von Java-Klassen, Objekten und Methoden praxisnah gelernt. Die Konzepte sind nicht nur für Lab 5 wichtig, sondern auch für weiterführende Themen wie Vererbung, Polymorphie und Design Patterns. Viel Erfolg beim Programmieren!