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.
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!