Objektorientierte Programmierung
public static int getFarbe () {
return farbe;
}
Klasse
Die Datenstruktur eines Objekts wird durch die Attribute (auch Eigenschaften) seiner Klassendefinition festgelegt.
Das Verhalten des Objekts wird von den Methoden der Klasse bestimmt.
Klassen können von anderen Klassen abgeleitet werden (Vererbung). Dabei erbt die Klasse die Datenstruktur (Attribute) und die Methoden von der vererbenden Klasse (Basisklasse).
Beispiel:
- Die Klasse „Auto“ legt fest, dass das Auto eine Marke, eine Farbe & PS hat.
- Das Objekt „Automodell1“ hat schliesslich die Marke „Ferrari“, die Farbe „Rot“ & 500PS.
- Ein weiteres Objekt „Automodell2“ hat die Marke „Lamborghini“, die Farbe „Weiss“ & 650PS.
Beide Objekte sind unterschiedlich, gehören aber zur gemeinsamen Klasse Auto.
Attribute
Objekte (Autos, Häuser, Personen, …) besitzen verschiedene Eigenschaften (Farbe, Größe, Marke, PS, …). Diese Eigenschaften eines Objekts heißen Attribute.
Die Attribute werden in einer Klasse meist als Membervariablen dargestellt.
Beispiel anhand Beispiel-Klasse 'Auto':
public class Auto {
private String marke;
private int ps;
private int farbe;
// Konstruktoren & Methoden
}
Methoden
Methoden sind Unterprogramme, die das Verhalten von Objekten beschreiben und implementieren. Ausserdem können Methoden Übergabeparameter akzeptieren, welche zur Berechnung gewisser Dinge dienen können.
Konstruktoren
Konstruktoren sind spezielle Methoden ohne Ergebnistyp, deren Name mit dem Namen der Klasse übereinstimmt.
Wie der Name vermuten lässt, dienen Konstruktoren dem „Erschaffen“ (Konstruieren) von Objekten nach einem gewissen Vorbild.
In einer Klasse können mehrer Konstruktoren existieren.
Beispiele:
// Konstruktor
1 public Auto () {
// code
}
// Konstruktor
2 public Auto ( int ps ) {
this.ps = ps;
}
Zugriffsmethoden
Abfragemethoden (Getter)
Eine Abfragemethode oder auch Getter, fragt eine Eigenschaft eines Objekts ab.
Beispiel:
public String getMarke () {
return this.marke;
}
Änderungsmethoden (Setter)
Eine Änderungsmethode oder auch Setter, ändert ein Objektattribut.
Beispiel:
public void setMarke ( String marke ) {
this.marke = marke;
}
Statische Methoden
Normalerweise können Methoden nur über ein zuvor erzeugtes Objekt aufgerufen werden, statische Methoden jedoch können ohne erzeugen eines Objektes aufgerufen werden.
Beispiel für einen nicht statischen Methodenaufruf:
Auto auto = new Auto(); // Erzeugung des Objekts Auto auto.getFarbe();
Beispiel für einen statischen Methodenaufruf:
Auto.getFarbe();
Statische Methoden werden speziell mit static gekennzeichnet.
Beispiel:
public static int getFarbe () {
return farbe;
}
Objekterzeugung
Ein Objekt wird erzeugt, indem eine Klasse deklariert und instanziiert wird. Dies ist nicht zu verwechseln mit dem Initialisieren einer Variable (erstes Zuweisen eines Wertes zu einer Variable).
Allgemeine Erzeugung eines Objekts:
Variante 1
Klassenname objektname; // Deklaration
objektname = new Klassenname( param1, param2, ... ); // Instanziierung
Variante 2
// Deklaration & Instanziierung auf der selben Zeile
Klassenname objektname = new Klassenname( param1, param2, ... );
Beispiele:
StringBuilder stringBuilder = new StringBuilder();
Scanner scanner = new Scanner( System.in );