DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie...

27
DVG2 - 06 - Klassenhierarchie Klassenhierarchie

Transcript of DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie...

Page 1: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

DVG2 - 06 - Klassenhierarchie

Klassenhierarchie

Page 2: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 3: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

DV

G2 - 06 - K

lassenh

ierarchie

3

Klassenhierarchie (kleiner Ausschnitt)

ThrowableCharacterNumber BooleanString

ErrorException

Byte Short Integer Long Float Double BigInteger BigDecimal

Math System

Object

Page 4: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 5: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 6: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 7: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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() {}...}

Page 8: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 9: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 10: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 11: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 12: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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;...

Page 13: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 14: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 15: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 16: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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)

Page 17: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 18: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 19: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 20: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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);

Page 21: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 22: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 23: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 24: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 25: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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

Page 26: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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.

Page 27: DVG2 - 06 - Klassenhierarchie Klassenhierarchie. DVG2 - 06 - Klassenhierarchie 2 Klassenhierarchie Durch die Ableitung jeder Klasse aus genau einer Elternklasse.

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