Kontakt aufnehmen

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 Klasse clSchachtel wird definiert:

public class clSchachtel
{
 public Byte AnzahlAutos
 static void clSchachtel ()
 {
  // hier folgen Befehle zur Beschreibung der Schachtel
 }
}

Um aus dieser Klasse nun ein Objekt zu erschaffen, wird sie mit 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 Spezialform for in der for-Schleife:

for(Eigenschaft in Objekt)
{
  // Anweisungen
}

Die Schleife wird ohne weitere Abbruchklausel verlassen, wenn alle Eigenschaften abgearbeitet sind.

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 dem import-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 ist extends:

class BMW extends Auto { ... }

Die Klasse BMW 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

Stefan Wienströer

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

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern