Java: Klassen und Objekte
Klassen sind ganz entscheidende Elemente der objekt-orientierten Programmierung. Sie sind Vorlagen, aus denen Objekte erzeugt werden. Objekte haben Eigenschaften und Methoden.Class
In Java geht nichts ohne Klassen. Auch unser erstes kleines, funktionstüchtiges Programm basiert auf einer Klasse. In einer Klasse sind Methoden und Eigenschaften eines Objektes definiert. Die Klasse dient als Vorlage, aus der dann beliebig viele Objekte erzeugt werden können.Objekte
Um ein Objekt tatsächlich zu erzeugen (zu konstuieren), wird eine bestimmte Funktion innerhalb der Klasse aufgerufen, die man deshalb auch Konstruktor nennt. Man erkennt sie daran, dass sie den gleichen Namen hat wie die Klasse. Beispiel: Eine KlasseclSchachtel
wird definiert:
public class clSchachtel
{
public Byte AnzahlAutos
static void clSchachtel ()
{
// hier folgen Befehle zur Beschreibung der Schachtel
}
}
new
aufgerufen:
Schachtel = new clSchachtel();
Nun kann sie benutzt werden:Schachtel.AnzahlAutos = 0;
Eigenschaften
Eigenschaften beschreiben das Objekt. Die Eigenschaften kann man abfragen und man kann sie ändern. Beispiel: Im Laufe der Programmabarbeitung werden Autos in die Schachtel gepackt; damit ändert sich die Anzahl:Schachtel.AnzahlAutos++;
Eigenschaften von Objekten haben intern eine laufende Nummer, unter der sie bearbeitet werden können. Mit Schleifen kann man alle Eigenschaften eines Objektes durchlaufen. Dazu gibt es die Spezialformfor in
der for
-Schleife:
for(Eigenschaft in Objekt)
{
// Anweisungen
}
Methoden
Methoden einer Klasse bzw. eines Objektes sind Handlungen, die das Objekt ausführen kann. Unser Roboter z.B. kann laufen, er kann Autos aufnehmen, und er kann Autos in Schachteln packen.Laufezu("Autos");
NimmAutos(3);
Laufezu("Schachteln");
VerpackeAutos();
LaufeZu
, NimmAutos
und VerpackeAutos
sind also Methoden, die der Roboter ausführen kann. Dazu müssen sie in der Klasse Roboter definiert sein (das heißt, dort muss beschrieben sein, was der Roboter genau tun soll, wenn die Methode aufgerufen wird), und die entsprechenden Objekte müssen durch Aufruf der Konstruktor-Funktion erschaffen worden sein.
Pakete
Viele Klassen liegen schon gespeichert vor, gepackt in sogenannten Paketen (packages). Durch Import dieser Pakete kann man sich die darin enthaltnen Klassen als Vorlagen für Objekte verfügbar machen:import java.applet.Applet;
Dieses Paket enthält z.B. die vordefinierten Klassen zur Erstellung eines Applets.import java.awt.Graphics;
Dieses Paket bietet Komponenten zur Grafik-Programmierung an. Die Pakete sind in Dateien gespeichert, die mit demimport
-Befehl aus dem Internet heruntergeladen und entpackt werden.
Geltungsbereiche von Objekten und Variablen
Jede Variable und jedes Objekt sind nur gültig in dem Anweisungsblock, in dem sie deklariert wurden. Globale Variablen gibt es in Java nicht. In unseren Beispielen haben wir reservierte Wörter verwendet, die den Geltungsbereich beschreiben:public
, private
und static
.public
bedeutet, diese Variable oder dieses Objekt soll generell abgefragt, geändert bzw. benutzt werden dürfen bzw. verfügbar sein. Das Gegenteil ist private
: Es bedeutet, dieses Variable oder dieses Objekt soll nur in dem Anweisungsblock existieren, in dem sie/es deklariert wurde. Eine Sonderform ist static
. Es bedeutet, dass diese Variable erhalten bleiben soll. Man kann sie also nur einmal erzeugen und ihren Wert dann immer wieder abfragen, während man Objekte mit Eigenschaften und Methoden, die nicht static
deklariert wurden, in beliebiger Anzahl immer wieder neu erschaffen kann, von denen dann jedes wieder neue und eigene Werte hat.Innerhalb einer Klassendefinition kann man auf die Eigenschaften der eigenen Klasse mit dem Schlüsselwort
this
zugreifen. Auf Eigenschaften und Methoden einer anderen Klasse kann man zugreifen, indem man den Namen davor angibt.
Vererbung
Eine neue Klasse kann die Methoden und Eigenschaften einer anderen Klasse übernehmen. Man nennt das Vererbung. Aus einer bestehenden Klasse wird eine neue generiert. Das macht Sinn, wenn diese neue Klasse neue Eigenschaften und / oder Methoden hinzufügt. Effektiv wird das z.B., wenn man 2 Klassen haben will, deren Eigenschaften und Methoden teilweise übereinstimmen. Dann kreiert man zunächst eine Parent-Klasse, welche die gemeinsamen Eigenschaften beider Klassen hat. Danach erschafft man 2 Child-Klassen, welche die Eigenschaften der Parent-Klasse erben, ihnen aber noch weitere hinzufügen. So kann man ganze "Erbfolgen" schaffen. Das Reservierte Wort für Vererbung istextends
:
class BMW extends Auto { ... }
Die KlasseBMW
erweitert also die schon definierte Klasse um weitere Eigenschaften.Will man verhindern, dass aus einer Klasse eine Unterklasse gebildet werden kann, dann verwendet man das Schlüsselwort
final
.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Schleifen
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project