DVG2 - 06 - Klassenhierarchie Klassenhierarchie
DVG2 - 06 - Klassenhierarchie
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
2
Klassenhierarchie
Durch die Ableitung jeder Klasse aus genau einer Elternklasse entsteht eine Baumstruktur.
Jede Klasse (außer Object) hat genau eine Elternklasse und keine, eine oder mehrere Kinderklassen.
Falls bei der Definition einer Klasse keine extends-Klausel angegeben wird wird implizit extends Object angenommen.
DV
G2 - 06 - K
lassenh
ierarchie
3
Klassenhierarchie (kleiner Ausschnitt)
ThrowableCharacterNumber BooleanString
ErrorException
Byte Short Integer Long Float Double BigInteger BigDecimal
Math System
Object
DV
G2 - 06 - K
lassenh
ierarchie
4
Die Klasse Object
Die Klasse Object ist die einzige Klasse, die von keiner Klasse abgeleitet ist.
Jede Klasse die nicht explizit von einer anderen Klasse abgeleitet ist, wird von Object abgeleitet.
Alle Klassen erben die Attribute und Methoden von Object. Einige werden von den meisten abgeleiteten Methoden überschrieben.
DV
G2 - 06 - K
lassenh
ierarchie
5
Methoden der Klasse Object
protected Object clone() Erzeugt eine identische Kopie des Objects.– Es muß das Interface Cloneable implementiert werden!– Es werden nur die Attribute selbst kopiert nicht die Objekte auf
die diese evtl. referieren!– Kein Konstruktor wird aufgerufen!
boolean equals(Object obj) Testet ob das Objekt identisch zu dem anderen ist. Dabei wird nur die Referenz verglichen, nicht der Inhalt.
protected void finalize() Wird von der Garbage-Collection aufgerufen, wenn keine Referenz mehr auf das Objekt existiert.
int hashCode()Berechnet einen hash-Code für das Objekt.
String toString() Erzeugt eine Zeichenketten-Repräsentation des Objektes.
DV
G2 - 06 - K
lassenh
ierarchie
6
Methoden für Parallel-Verarbeitung
Class getClass()erzeugt ein Objekt, das einzig für alle Objekte der Klasse ist
void notify()weckt einen schlafenden Prozess
void notifyAll()weckt alle schlafenden Prozesse
void wait()schläfert den aktuellen Prozess ein
void wait(long timeout)schläfert den aktuellen Prozess für timeout Millisekunden ein
void wait(long timeout, int nanos)schläfert den aktuellen Prozess für timeout Millisekunden + nanos Nanosekunden ein
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
7
Die Klasse System
Die Klasse enthält wichtige Attribute und Methoden als Schnittstelle zum System.
Die Klasse System ist nicht instanziierbar!
public final class System {private System() {}...}
DV
G2 - 06 - K
lassenh
ierarchie
8
Die Klasse System
Betriebsystem stellt Standard-Datenströme für die Eingabe, Ausgabe und für Fehlermeldungen zur Verfügung. Diese können umgelenkt werden.
static InputStream in Standard-Eingabestrom = Tastatur
static PrintStream outStandard-Ausgabestrom = Bildschirm
static PrintStream errStandard-Ausgabestrom für Fehlermeldungen = Bildschirm
DV
G2 - 06 - K
lassenh
ierarchie
9
Methoden der Klasse System
static void setIn(InputStream in)Ändert den Standard-Eingabestrom
static void setOut(PrintStream out)Ändert den Standard-Ausgabestrom
static void setErr(PrintStream err)Ändert den Ausgabestrom für Fehlermeldungen
static void exit(int status)beendet das laufende Programm mit dem Rückkehrcode status
static void gc()startet die Garbage-Collection
static void runFinalization()startet für alle Objekte, die keine Referenzen mehr haben die Methoden finalize
DV
G2 - 06 - K
lassenh
ierarchie
10
static void arraycopy(Object src, int src_position, Object dst, int dst_position, int length)Kopiert ein Teil eines Feldes auf ein Zielfeld– src und dst müssen auf Felder zeigen, deren Elemente vom
gleichen Typ sein gleicher primitiver Datentyp Referenztyp
– Wenn src und dst gleich sind wird kopiert als wenn zunächst auf ein Zwischenfeld kopiert wird und anschließend auf das Ziel.
static long currentTimeMillis()aktuelle Zeit in Millisekunden bzgl. 1.1.1970 0.00 Uhr
DV
G2 - 06 - K
lassenh
ierarchie
11
static Properties getProperties()bestimmt Systemeigenschaften und gibt diese als Objekt der Klasse Properties aus. In Properties gibt es die Methode list:System.getProperties().list(System.out)
static String getProperty(String key)gibt den Wert der Systemeigenschaft mit dem Namen key als Zeichenkette zurück
static void setProperties(Properties props)setzen der Systemeigenschaften
static String setProperty(String key, String value)setzen der Systemeigenschaft mit dem Namen key auf den Wert value
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
12
Die Klasse Throwable
Klasse Throwable ist die Superklasse aller Fehler und Ausnahmen in JAVA.
Ein Objekt der Klasse Throwable enthält einen „snapshot“ des „execution stacks“ zu dem Zeitpunkt zu dem es erzeugt wurde. Außerdem kann ein Text enthalten sein, der die Ausnahme genauer beschreibt.
Objekte der Klasse Throwable können mit der throw-Anweisung aktiviert werden. Z.B.:class ZeroDivide extends Throwable {}...double x, y, z;if (y==0.0) throw new ZeroDivide();z=x/y;...
DV
G2 - 06 - K
lassenh
ierarchie
13
Konstruktoren der Klasse Throwable
Throwable()Initialisiert eine Ausnahme ohne Fehlermeldungstext
Throwable(String message)Initialisiert eine Ausnahme mit Fehlermeldungstext
DV
G2 - 06 - K
lassenh
ierarchie
14
Methoden der Klasse Throwable
public Throwable fillInStackTrace()Erzeugt eine neue Ausnahme, wobei der stacktrace von der ursprünglichen Ausnahme übernommen wird.
public String getMessage()public String getLocalizedMessage()gibt den (sprachspezifischen) Fehlermeldungstext aus, der im Konstruktor angegeben wurde
public void printStackTrace()public void printStackTrace(PrintStream s)public void printStackTrace(PrintWriter s)gibt den stacktrace auf System.err bzw. auf s aus
public String toString()gibt den Namen der Klasse zurück zu der die Ausnahme gehörtwenn eine Meldung existiert: + “:“ + message
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
15
Die Klassen Error und Exception
Die Klassen Exception und Error sind einfache Ableitungen von der Klasse Throwable.
Von Error werden üblicherweise echte Fehler abgeleitet, die zum Programmabruch führen.
Von Exception werden Ausnahmen abgeleitet, die behandelt werden können.
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
16
Die Klasse Math
Klasse Math enthält allgemeine mathematische Konstanten und Funktionen.
Math ist nicht instanziierbar (wie System)
DV
G2 - 06 - K
lassenh
ierarchie
17
Attribute der Klasse Math
static double E Die double-Zahl die dichter an e ist als alle anderen double-Zahlen.
static double PIDie double-Zahl die dichter an ist als alle anderen double-Zahlen.
DV
G2 - 06 - K
lassenh
ierarchie
18
Methoden der Klasse Math
static typ abs (typ a)static typ max (typ a, typ b)static typ min (typ a, typ b)typ = long, int, float, doubleAbsolutbetrag, Maximum und Minimum
static long round (double a)static int round (float a)die zu a dichteste long- bzw. int-Zahl
static double rint (double a)die zu a dichteste ganze Zahl als double dargestellt
static double floor(double a)die größte ganze Zahl, die nicht größer als a ist als double dargestellt
static double ceil(double a)die kleinste ganze Zahl, die nicht kleiner als a ist als double dargestellt
DV
G2 - 06 - K
lassenh
ierarchie
19
Winkelfunktionenstatic double func (double a)func = sin, cos, tan, asin, acos, atan, toDegrees, toRadiansstatic double atan2 (double a, double b)
Potenz- und Logarithmusfunktionenstatic double func (double a)func = exp, log, sqrtstatic double pow (double a, double b)berechnet ab
Zufallszahlenstatic double random()liefert gleichverteilte Zufallszahlen im Intervall <0.0,1.0>
Klassenhierarchie
DV
G2 - 06 - K
lassenh
ierarchie
20
Die Klasse String
Die Klasse String definiert Zeichenkettenkonstanten. Die Zeichenketten können nach der Instanziierung nicht mehr geändert werden.
Für sich ändernde Zeichenketten nutze man besser die Klasse StringBuffer.
String-Objekte können mit dem Operator “+“ verkettet werden. Beispiele:
System.out.println("abc");String cde = "cde";System.out.println("abc" + cde);String c = "abc".substring(2,3);String d = cde.substring(1, 2);
DV
G2 - 06 - K
lassenh
ierarchie
21
Konstruktoren der Klasse String
String()Initialisiert eine leere Zeichenkette ""
String(byte[] bytes)String(byte[] bytes, int offset, int length) Initialisiert eine Zeichenkette aus den bytes unter Berücksichtigung der aktuellen Umwandlungsregeln.
String(byte[] bytes, String enc) String(byte[] bytes, int offset, int length, String enc) Initialisiert eine Zeichenkette aus den bytes unter Berücksichtigung der Umwandlungsregeln in enc.
String(char[] value) String(char[] value, int offset, int count) Initialisiert eine Zeichenkette aus den Zeichen des Feldes.
DV
G2 - 06 - K
lassenh
ierarchie
22
String(String value) Initialisiert eine Zeichenkette als Kopie der angegebenen Zeichenkette.
String(StringBuffer buffer) Initialisiert eine Zeichenkette als Kopie der angegebenen Zeichenkette in dem StringBuffer.
DV
G2 - 06 - K
lassenh
ierarchie
23
Methoden der Klasse String
String concat(String str)verketten mit der Zeichenkette str
int hashCode()bestimmen eines hashcodes
String intern()gibt eine Zeichenkette zurück die sich im Zeichenkettenpool befindet und den selben Inhalt wie this hat
int length()Länge der Zeichenkette
DV
G2 - 06 - K
lassenh
ierarchie
24
Zerlegen char charAt(int index)
Zeichen an der Position index String substring(int beginIndex)
String substring(int beginIndex, int endIndex) Teilzeichenkette von beginIndex bis endIndex-1
String trim()löscht "whitespaces" am Anfang und Ende der Zeichenkette
Vergleichen int compareTo(Object o)
int compareTo(String anotherString)int compareToIgnoreCase(String str) gibt die Differenz der ersten voneinander verschiedenen Zeichen in den Zeichenketten zurück ggf. unter Vernachlässigung der Groß- und Kleinschreibung
DV
G2 - 06 - K
lassenh
ierarchie
25
boolean equals(Object anObject) boolean equalsIgnoreCase(String anotherString)testet ob die Zeichenketten übereinstimmen ggf. ohne Berücksichtigung der Groß- und Kleinschreibung
boolean regionMatches(int toffset, String other, int ooffset, int len) boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) vergleicht Teile von Zeichenketten
boolean endsWith(String suffix)testet ob die Zeichenkette mit suffix endet
boolean startsWith(String prefix)boolean startsWith(String prefix, int toffset)testet ob eine Zeichenkette mit prefix beginnt
DV
G2 - 06 - K
lassenh
ierarchie
26
Suchen int indexOf(int ch)
int indexOf(int ch, int fromIndex)int indexOf(String str)int indexOf(String str, int fromIndex)Gibt den Index zurück an der das Zeichen ch bzw. die Zeichenkette str gefunden wurde. Wenn es nicht gefunden wurde wird -1 zurückgegeben.
int lastIndexOf(int ch)int lastIndexOf(int ch, int fromIndex)int lastIndexOf(String str)int lastIndexOf(String str, int fromIndex)Gibt den letzten Index zurück an der das Zeichen ch bzw. die Zeichenkette str gefunden wurde. Wenn es nicht gefunden wurde wird -1 zurückgegeben.
DV
G2 - 06 - K
lassenh
ierarchie
27
Ersetzen String replace(char oldChar, char newChar)
Ersetzt jedes Vorkommen von oldChar durch newChar. String toLowerCase()
String toLowerCase(Locale locale)String toUpperCase()String toUpperCase(Locale locale)wandelt alle großen (kleinen) Buchstaben in kleine (große) Buchstaben um unter Berücksichtigung sprachspezifischer Gegebenheiten
Klassenhierarchie