Java 1
  • Home
  • Tutorials
    • Hello World
      • Download
      • Installation unter Windows
      • Installation unter Linux
      • Das Hello World Programm
      • Mehr Java
    • Java Konsole
      • Java Konsole Testen
    • Basic Java
      • Java Programme
        • Die Klasse
        • Datentypen
        • Null
        • Casten
        • Operatoren
        • Kontrollstrukturen
        • Arrays
        • Aufgaben
      • Objektorientierte Konzepte
        • Hallo Fenster
        • Objekte einer Klasse
        • Vererbung
        • Interfaces
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
        • Sichtbarkeit
        • Druckdarstellung
        • Gleichheit
        • Klonen
        • Die Class
        • Serialisierung
    • Java Api
      • Dokumentation
      • Strings
      • Wrapper Klassen
      • System und Runtime
      • Math
      • Exceptions
      • IO
      • Sammlungsklassen
      • AWT und Swing
      • Alle Komponenten
      • Applets
      • Threads
      • Jar
      • Classpath
    • JSP und Servlets
      • Meine erste JSP
        • Downloads
        • Installation unter Windows
        • Installation unter Linux
        • Admin und Manager
        • Webapplication
      • JSP
        • Java Code in HTML einbinden
        • Das HTTP Request - Response Modell
        • Request und Response Objekte
        • Auswerten von Formulardaten
        • Aufgaben
      • Beans
        • Die Session
        • Weitere vordefinierte Objekte
        • Java-Beans
        • Beans programmieren
        • Java-Beans in JSP nutzen
        • Aufgaben
      • Servlets
        • Nutzen der Servlets
        • Servlets programmieren
        • Servlets auf dem Server einrichten
        • Servlets mit JSP
        • Servlets includen
        • Aufgaben
      • Webapplikation
        • Filter
        • Initialisierungsparameter
        • Error Pages
        • Passwortgeschützte Verzeichnisse
        • Bibliotheken nutzen
        • Eine Webapplikation deployen
        • Ausblick: Wie geht's weiter?
        • JSP-Tags Syntaxreferenz
        • Aufgaben
  • Code
    • Web
      • Datenbankverbindungen mit Tomcat
      • Texte richtig encoden
      • HTTPS mit Tomcat
      • HTML Encoden mit Javascript
    • Java
      • Print F
      • Ein generischer Poolbuilder
      • Native Bibliotheken
      • Unique Ids
    • Java FX
      • Balls
      • Hearts
      • Planner
    • Java ME
      • The Next Big Thing
    • System
      • Vi Kommandos
  • Sidemap
  • Impressum
  • Hilfe
Home > Tutorials > Basic Java > Objektorientierte Konzepte > Vererbung
  • Home
  • Tutorials
    • Hello World
    • Java Konsole
    • Basic Java
      • Java Programme
      • Objektorientierte Konzepte
        • Hallo Fenster
        • Objekte einer Klasse
        • Vererbung
        • Interfaces
      • Alles über Klassen
      • You're just an object
    • Java Api
    • JSP und Servlets
  • Code
  • Sidemap
  • Impressum
  • Hilfe

Vererbung

Durch Vererbung lassen sich Objekte mit speziellen Eigenschaften „züchten“.
Wie Sie bemerkt haben, lässt sich unser Fenster zwar vergrößern, verkleinern, maximieren und minimieren, aber nicht schließen. Das ist ziemlich unprofessionell, und wir wollen es ändern.

Da ein java.awt.Frame offenbar nicht zu schließen ist, wäre es gut, eine eigene Fensterklasse zu haben, die ebendies ermöglicht. Allerdings gibt es schon eine Menge brauchbares an java.awt.Frame, was wir nicht so gerne neu programmieren würden. Gut wäre also, wenn wir einen java.awt.Frame auf einfache Weise verändern könnten. Das Zauberwort heisst hier: „Vererbung“. Wir erschaffen uns dadurch eine Klasse, die alles kann, was java.awt.Frame kann, die wir aber nach unseren Vorstellungen verändern können.

Extends

In einem ersten Schritt definieren wir eine Klasse „ClosableFrame“,die von „java.awt.Frame“ abgeleitet wird. Sie erbt von „Frame“ alle Methoden und Eigenschaften, die „Frame“ selbst besitzt, und kann in jeder Beziehung wie ein „Frame“ behandelt werden. Wir erreichen das durch das Schlüsselwort extends.

ClosableFrame macht damit zwar nichts anderes als ein „java.awt.Frame“, sondern erbt alle Methoden von Frame, wir haben aber nun eine Klasse, die sich wie ein Frame verhält und die wir verändern können.Wir sind nicht mehr allein auf vorgefertigte API-Funktionen angewiesen. Auch von ClosableFrame können wir Instanzen erzeugten, wie im Beispiel gezeigt.

Konstruktor

Wie wir bereits wissen, wird ein ClosableFrame Objekt durch den new – Operator verbunden mit dem Aufruf einer speziellen Methode erzeugt, dem sogenannten Konstruktor. Der Konstruktor wird allein dazu benutzt, eine Instanz einer Klasse (ein Objekt) zu erzeugen. Er wird ohne Rückgabewert notiert, da er sozusagen das Objekt selbst zurückgibt. 

Ein parameterloser Konstruktor ist in jeder Java-Klasse implizit vorhanden, die keinen explizit ausformulierten Konstruktor enthält; wir können aber auch explizit einen Konstruktor zur Verfügung stellen. Daneben können wir auch weitere Konstruktoren anbieten, die bestimmte Parameter, zum Beispiel den Fenstertitel oder die Größe des zu erzeugenden Fensters annehmen. Innerhalb der Konstruktoren können wir beliebige Programmierung vornehmen:

Wie Sie erkennen, rufen wir innerhalb der Konstruktoren Methoden der Klasse „java.awt.Frame“ auf (setSize(..), setVisible(..)). Es sind zugleich Methoden von ClosableFrame, da ClosableFrame sie von„java.awt.Frame“ geerbt hat. Da sie aus der eigenen Klasse kommen, brauchen sie nicht durch die Punktsyntax referenziert zuwerden. Zur Verdeutlichung können wir den this –Operator verwenden (this.setVisible(true)). Er referenziert das aktuelle Objekt. Er ist aber hier nicht wirklich erforderlich, sondern dient nur der Verdeutlichung. In anderen Zusammenhängen ist er aber sehr nützlich.

Methoden

Wir wollen uns nun wieder unserem Ziel zuwenden, ein schließbares Fenster zu bekommen. Eine akzeptable Methode, unser Fenster zu schließen, ist die Laufzeitumgebung mit: 

System.exit(0);

zu beenden. Wir implementieren daher eine Methode, die diese Funktionalität anbietet.

ClosableFrame besitzt nun zwei Konstruktoren und zwei neue Methoden (zusätzlich zu all den Methoden, die von „java.awt.Frame“ geerbt wurden und die ja ebenfalls zur Verfügung stehen, auch wenn wir sie nicht erneute schreiben müssen). Methoden besitzen einen Rückgabewert, der angegeben werden muss. Wollen wir nichts zurückgeben wie in im Falle unserer beiden Methoden, so muss das Schlüsselwort void geschrieben werden.

Ebenso wie beim Konstruktor sind Methoden gleichen Namens, aber mit unterschiedlichen Parametern zulässig. So gibt es beispielsweise in „java.awt.Frame“ die Methode „setSize(Dimension dimension)“ neben der bereits bekannten Methode „setSize(int x, int y);“ Man spricht in diesem Fall von einer unterschiedlichen Signatur. Nicht zulässig sind Methoden, die sich nur in ihrem Rückgabetyp unterscheiden. Der Rückgabetyp gehört nicht zur Signatur.

Aufgabe: HalloFenster

Lesen Sie nun das Kapitel über die Dokumentation von Javaklassen, falls Sie es noch nicht getan haben. Verändern Sie dann das Programm „HalloFenster“:

  1. Verändern Sie den Titel und die Grösse des Fensters.
  2. Setzen Sie die Hintergrundfarbe zu: java.awt.Color.BLUE.

BenutzenSie die Dokumentation, um eine entsprechende Methode der Klasse Framezu finden.

Musterlösung: java1.aufg.kap_2.HalloFenster

« Objekte einer Klasse
Objektorientierte Konzepte
Interfaces »
Show/Hide Footer Actions

Kommentare:

Sie müssen angemeldet sein um eine Nachricht zu erstellen. Anmelden »
© 2012 Java 1. Alle Rechte vorbehalten.
Anmelden
concrete5 - open source CMS
Theme by Site5 / Mnkras.