Klassen
Eine Klasse ist wie ein Bauplan für Objekte. Sie definiert, welche Eigenschaften (Attribute) und Fähigkeiten (Methoden) Objekte haben sollen, die nach diesem Bauplan erstellt werden.
Vergleich aus dem Alltag: Stell dir vor, eine Klasse ist wie ein Bauplan für ein Auto. Der Bauplan beschreibt, dass jedes Auto eine Farbe, eine Marke und eine Geschwindigkeit haben soll. Außerdem kann jedes Auto fahren, bremsen und hupen.
Nach diesem Bauplan können dann viele verschiedene Auto-Objekte gebaut werden: ein rotes BMW-Auto, ein blaues Mercedes-Auto, usw.
Aufbau einer Klasse
Eine Klasse besteht aus zwei Hauptteilen:
- Attribute (Eigenschaften/Daten)
- Methoden (Fähigkeiten/Funktionen)
Schauen wir uns eine einfache Klasse am Beispiel eines Autos an:
Aufgabe: Führe den Code aus und beobachte, was passiert. Experimentiere mit verschiedenen Werten!
Wichtige Begriffe
Konstruktor
Der Konstruktor ist eine spezielle Methode, die ausgeführt wird, wenn ein neues Objekt erstellt wird. Er hat immer den gleichen Namen wie die Klasse.
public Auto(String neueFarbe, String neueMarke) {
farbe = neueFarbe;
marke = neueMarke;
geschwindigkeit = 0;
}
Private vs. Public
- private: Nur innerhalb der gleichen Klasse sichtbar
- public: Von überall aus sichtbar
Faustregel: Attribute sollten meist private
sein, wichtige Methoden public
. So schützt du deine Daten vor ungewollten Änderungen!
Übung: Klasse "Person"
Erstelle eine Klasse Person
mit folgenden Eigenschaften:
Aufgabe: Schreibe eine Klasse Person
mit:
- Attributen:
name
(String),alter
(int),groesse
(double) - Konstruktor, der alle Attribute setzt
- Methode
stelleVor()
: gibt "Hallo, ich bin [Name] und bin [Alter] Jahre alt" aus - Methode
wachse()
: erhöht die Größe um 0.1
public class Person {
private String name;
private int alter;
private double groesse;
public Person(String neuerName, int neuesAlter, double neueGroesse) {
name = neuerName;
alter = neuesAlter;
groesse = neueGroesse;
}
public void stelleVor() {
System.out.println("Hallo, ich bin " + name + " und bin " + alter + " Jahre alt");
}
public void wachse() {
groesse = groesse + 0.1;
System.out.println(name + " ist jetzt " + groesse + "m groß");
}
}
Getter und Setter Methoden
Da Attribute meist private
sind, brauchst du spezielle Methoden, um von außen auf sie zuzugreifen:
Teste-Dich-Projekt: Bankkonto
Aufgabe: Erstelle eine Klasse Bankkonto
mit:
- Attributen:
kontoinhaber
(String),kontostand
(double) - Konstruktor mit Kontoinhaber (Kontostand startet bei 0)
- Methode
einzahlen(double betrag)
: erhöht den Kontostand - Methode
abheben(double betrag)
: verringert den Kontostand (nur wenn genug Geld da ist) - Methode
kontostandAnzeigen()
: zeigt den aktuellen Kontostand
Testfälle
- Einzahlen von 100,50€ → Kontostand: 100,50€
- Abheben von 30,25€ → Kontostand: 70,25€
- Abheben von 200€ → Fehlermeldung, Kontostand bleibt 70,25€
Erweitere deine Bankkonto-Klasse:
- Füge ein Tageslimit für Abhebungen hinzu
- Implementiere Zinsen, die täglich berechnet werden
- Erstelle eine Historie der letzten Transaktionen