25.01.2006 - userpages

Werbung
Vererbung und Array
Fragen
Vererbung
z
z
z
z
Die Klassen in Java sind in einer Hierarchie
geordnet.
Vaterklasse (Oberklasse, Superklasse) und
Kinderklasse (Unterklasse, Subklasse)
Alle Sichtbaren Elemente der Superklasse
werden an die Subklasse weitergegeben
(vererbt)
In Java kann eine Klasse nur eine
Oberklasse haben (Ausnahme Interface)
Vererbung
Beispiel:
Superklasse
Subklassen
Vererbungshierarchie
Erweiterung des Beispiels:
Vererbung in UML
Vererbung in Java
z
z
z
z
Beispiel Tier
Eine Klasse Tier
mit einer Instanzvariablen Alter vom Typ int.
Eine Klasse Vogel extends Tier
Damit besitzt auch eine Vogel ein Alter
Siehe Java Klassen
Vererbung Tiere
z
Beispiel mit AWT
Sichtbarkeit
z
z
z
z
Public:
Protected:
Privat:
Default (ohne Angabe
eines Schlüsselwortes)
Abstrakte Klassen
z
z
z
z
Beispiel: Klasse Kreis von letzter Stunde
Wir wollen jetzt mehrere Geometrische
Objekte erzeugen (Rechteck, Ellipse,
Dreieck, usw.)
Jetzt wäre es doch gut wenn wir eine
Superklasse Figur hätten die die beiden
Funktionen Umfang und Fläche beinhaltet.
Jedoch repräsentiert unsere Klasse Figur ja
keine tatsächlich existierende Form. (Sie ist
abstrakt)
Abstrakt
z
z
Eine solche Klasse wird mit dem Schlüsselwort
abstract beschrieben
Beispiel:
z
public class abstract Figur{
public abstract double flaeche();// Abstrakte Methode
public abstract double umfang ();// Abstrakte Methode
}
Abstrakte Klassen
public class Quadrat extends Figur{
protected int l;
public Quadrat(int l){
this.l=l;
}
public double umfang(){
//Methode überschreiben
return 4*l;
}
public double flaeche(){
//Methode überschreiben
return l*l;
}
Unterschied Überschreiben und Überlagern ??? Ist das klar?
Überschreiben vs. Überlagern
Beispiel:
public class foo{
public int l=-1;
public void ausgabe(){
System.out.println(„Foo mit Wert l= “+this.l);
}
}
Überschreiben vs. Überlagern
public class bar extends foo{
public int l=2;
public void ausgabe(){
System.out.println(„Bar mit l= „+l);
}
}
Siehe Foobar Beispiel
Exkurs: Package
z
z
z
Packages sind eine benannte Sammlung
von Klassen (und deren Subklassen)
Sie dienen dazu, verwandte Klassen
zusammenzufassen und für die enthaltenen
Klassen einen Namensraum bereitzustellen
Um anzugeben, zu welchen Package eine
Klasse gehört, muss in der ersten Zeile
package Name stehen.
Exkurs: Package
z
Möchte man Klassen aus einem anderen
Package benutzen: import Packagename
z
z
z.B. import java.awt.*
Eindeutigkeit von Packagenamen:
z
z
Internetdomainname umgedreht
z.B. de.thiel-it.tools
Exkurs: Fenster schließen
addWindowListener(new WindowAdapter()
{
public void
windowClosing(WindowEvent e)
{
e.getWindow().dispose(); //exit()
}
});
}
Arrays
z
z
z
z
z
In Java Objekte
int[] a=new int[4];
int[] a={17,15,7,3,5,1,11,19,2,18,4,16,10,12};
a.length; gibt die Länge des Feldes als Int
zurück
Inhalt an der Stelle x im Feld a[x];
Arrays
/**
*@author Sebastian Thiel
*
*/
public class Hello{
public static void main(String[] Args){
int [] b= new int[4];
b[3]=2;
System.out.println(b[3]);
}
}
Übungsaufgaben
z
z
Siehe www.uni-koblenz.de/~sebath Aufgaben
Lösungen zu den Aufgabe nach der
Veranstaltung auch auf der Seite
Herunterladen