Inhalt (2) Informatik B Objektorientierte Programmierung in Java. Vorlesung 02: Objektorientierte Programmierung (Teil 2) Konstruktoren.

Ähnliche Dokumente
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Intuitive Einführung. Informatik B Objektorientierte Programmierung in Java. Vorlesung 01: Objektorientierte Programmierung (Teil 1)

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Einstieg in die Informatik mit Java

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Einstieg in die Informatik mit Java

Abschnitt 6: Klassen, Objekte und Methoden in Java

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Einführung in die Programmierung

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Objektorientierte Programmierung und Klassen

Einführung in die Programmierung 1

Prof. W. Henrich Seite 1

Repetitorium Informatik (Java)

Methoden und Wrapperklassen

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Grundlagen der Programmierung

Einstieg in die Informatik mit Java

Der Datentyp String. Stringvariable und -vergleiche

Java Datentypen und Variablen

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Fragen zur OOP in Java

Grundlagen der Programmierung

3 Objektorientierte Konzepte in Java

Einstieg in die Informatik mit Java

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Aufbau von Klassen. class punkt {...

Klassen als Datenstrukturen

Javakurs für Anfänger

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Umsetzung einer Klassenkarte in einer Programmiersprache

Vererbung, Polymorphie

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Objektorientierte Programmierung Studiengang Medieninformatik

3 Objektorientierte Konzepte in Java

Objektorientierte Programmierung. Kapitel 18: Strings

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Objektorientierte Programmierung. Kapitel 18: Strings

Objektorientierte Programmierung. Kapitel 10: Strings

12 Abstrakte Klassen, finale Klassen und Interfaces

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

4. Vererbung Die Klasse Object. Die Klasse Object

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

C++ - Objektorientierte Programmierung Vererbung

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

1 Hashing und die Klasse String

Vorlesung Programmieren

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Einstieg in die Informatik mit Java

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Programmieren in Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

1 Klassen und Objekte

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Verarbeitung von Zeichenketten

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Praktische Informatik 1

AuD-Tafelübung T-B5b

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Einführung in Java, Teil 7

7. Übung Informatik II - Objektorientierte Programmierung

Die Klasse java.lang.object. Thorsten Treffer

Objekt-Orientierte Programmierung

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Algorithmen und Programmierung II

Java Einführung Methoden in Klassen

Einführung in die Informatik Objekte

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

boolean, char, byte, short, int, long long, float, double

Theorie zu Übung 8 Implementierung in Java

Einführung in die Programmierung für NF MI. Übung 07

JAVA - Methoden

Vererbung. Martin Wirsing. Ziele. Vererbung

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Vorlesung Informatik II

Einstieg in die Informatik mit Java

Klassenvariablen, Klassenmethoden

Programmieren I. Kapitel 10. Spezielle Features

Programmierkurs Java

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

14 Abstrakte Klassen, finale Klassen, Interfaces

Objektorientierte Programmierung Studiengang Medieninformatik

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

JAVA - Methoden - Rekursion

Algorithmen und Datenstrukturen

Transkript:

Universität Osnabrück 1 Inhalt (2) 3 Objektorientierte Programmierung in Java Klassen mit static-elementen υ Klassenattribute υ Konstanten υ Klassenoperationen Vorlesung 02: Objektorientierte Programmierung (Teil 2) υ Statische Beispiel υ ZählerTest υ MaxTest SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund υ System Inhalt (1) 2 4 Destruktoren Beispiel υ Konto υ String In jeder objektorientierten Programmiersprache lassen sich spezielle Operationen definieren, die bei der Initialisierung eines Objekts aufgerufen werden: die. In Java werden als Operationen ohne Rückgabewert definiert, die den Namen der Klasse erhalten, zu der sie gehören. dürfen eine beliebige Anzahl an Parametern haben und können überladen werden.

5 7 Die Erweiterung der Klasse Auto um einen Konstruktor, der den Namen des Auto-Objekts vorgibt, sieht beispielsweise so aus: class Auto String name; int erstzulassung; int leistung; Auto(String name) this.name = name; In diesem Fall wird zunächst Speicher für das Auto-Objekt beschafft und dann der Konstruktor aufgerufen. Dieser initialisiert seinerseits das Attribut name mit dem übergebenen Argument "Porsche 911". Der nachfolgende Aufruf schreibt dann diesen Text auf den Bildschirm. 6 8 Soll ein Objekt unter Verwendung eines parametrisierten Konstruktors instantiiert werden, so sind die Argumente wie bei einem Operationsaufruf in Klammern nach dem Namen des Konstruktors anzugeben: Auto dasauto = new Auto("Porsche 911"); System.out.println(dasAuto.name); Explizite werden immer dann eingesetzt, wenn zur Initialisierung eines Objektes besondere Aufgaben zu erledigen sind. Es ist dabei durchaus gebräuchlich, zu überladen und mit unterschiedlichen Parameterlisten auszustatten. Beim Ausführen der new-anweisung wählt der Compiler anhand der aktuellen Parameterliste den passenden Konstruktor aus und ruft ihn mit den angegebenen Argumenten auf.

9 11 Das vorige Beispiel wird nun um einen Konstruktor erweitert, der alle Attribute initialisiert: Default-Konstruktor υ Falls eine Klasse überhaupt keinen expliziten Konstruktor besitzt, so wird beim Anlegen eines Objektes ein parameterloser default-konstruktor aufgerufen. υ Definiert die Klasse dagegen einen eigenen parameterlosen Konstruktor, überlagert dieser den default-konstruktor und wird bei allen parameterlosen Instantiierungen dieses Objekts verwendet. 10 12 class Auto String name; int erstzulassung; int leistung; Auto(String name) this.name = name; Auto(String name, int erstzulassung, int leistung) this.name = name; this.erstzulassung = erstzulassung; this.leistung = leistung; Verkettung von υ können in Java verkettet werden, d.h. sie können sich gegenseitig aufrufen. Der aufzurufende Konstruktor wird dabei als eine normale Operation angesehen, die über den Namen this aufgerufen werden kann. υ Die Unterscheidung zum bereits vorgestellten this- Zeiger nimmt der Compiler anhand der runden Klammern vor, die dem Aufruf folgen. υ Der im vorigen Beispiel vorgestellte Konstruktor hätte damit auch so geschrieben werden können:

13 Beispiel 15 class Auto String name; int erstzulassung; int leistung; Kontoverwaltung Auto(String name) this.name = name; Auto(String name, int erstzulassung, int leistung) this(name); this.erstzulassung = erstzulassung; this.leistung = leistung; 14 Destruktoren 16 υ Der Vorteil der verkettung besteht darin, dass vorhandener Code wiederverwendet wird. υ Führt ein parameterloser Konstruktor eine Reihe von nichttrivialen Anweisungen durch, so ist es natürlich sinnvoller, diesen in einem spezialisierteren Konstruktor durch Aufruf wiederzuverwenden, als den Code zu duplizieren. υ Wird ein Konstruktor in einem anderen Konstruktor derselben Klasse explizit aufgerufen, muss dies als erste Anweisung innerhalb des Konstruktors geschehen. υ Steht der Aufruf eines anderen Konstruktors nicht an erster Stelle in einem Konstruktor, gibt es einen Compiler-Fehler. Neben, die während der Initialisierung eines Objekts aufgerufen werden, gibt es in Java auch Destruktoren. Sie werden unmittelbar vor dem Zerstören eines Objekts aufgerufen.

Destruktoren 17 Destruktoren 19 Definition eines Destruktors υ Ein Destruktor wird als parameterlose Operation mit dem Namen finalize definiert: protected void finalize()... Tatsächlich garantiert die Sprachspezifikation von Java nicht, dass ein Destruktor überhaupt aufgerufen wird. Wenn er aber aufgerufen wird, so erfolgt dies nicht, wenn die Lebensdauer des Objektes endet, sondern dann, wenn der Garbage Collector den für das Objekt reservierten Speicherplatz zurückgibt. Dies kann unter Umständen nicht nur viel später der Fall sein (der Garbage Collector läuft ja als asynchroner Hintergrundprozess), sondern auch gar nicht. Destruktoren 18 Destruktoren 20 Da Java über eine automatische Speicherverwaltung verfügt, kommt den Destruktoren eine viel geringere Bedeutung zu als in anderen objektorientierten Sprachen. Anders als etwa in C++ muss sich der Entwickler ja nicht um die Rückgabe von belegtem Speicher kümmern; und das ist sicher eine der Hauptaufgaben von Destruktoren in C++. Wird nämlich das Programm beendet, bevor der Garbage Collector das nächste Mal aufgerufen wird, werden auch keine Destruktoren aufgerufen. Selbst wenn Destruktoren aufgerufen werden, ist die Reihenfolge oder der Zeitpunkt ihres Aufrufs undefiniert. Der Einsatz von Destruktoren in Java sollte also mit der nötigen Vorsicht erfolgen.

21 23 υ Die Klasse String repräsentiert Zeichenketten, bestehend aus Unicode-Zeichen. υ Objekte vom Typ String (im Folgenden kurz "String" genannt) sind nach der Initialisierung nicht mehr veränderbar. υ Alle Stringliterale (konstante Zeichenketten) werden als Objekte dieser Klasse implementiert. υ So zeigt z.b. die Referenzvariable name nach der Initialisierung durch String name = "Schmitz" auf das Objekt, das die konstante Zeichenkette "Schmitz" repräsentiert. υ Verketten String concat(string s) erzeugt einen neuen String, der den Inhalt von s an den des Strings, für den die Operation aufgerufen wurde, anhängt. Strings können auch mit dem Operator + verkettet werden. Ein String-Objekt entsteht auch dann, wenn dieser Operator auf einen String und eine Variable oder ein Literal vom primitiven Datentyp angewandt wird. Beispiel: System.out.println("Name...: "+meinkombi.name); System.out.println("Zugelassen: "+meinkombi.erstzulassung); 22 24 υ : String() erzeugt ein String-Objekt, das keine Zeichen enthält. String(String s) erzeugt ein String-Objekt mit dem Inhalt von s. String(char [] c) erzeugt ein String-Objekt, in das alle char-zeichen des Arrays c übernommen werden. υ Wichtige Operationen der Klasse String int length() liefert die Länge der Zeichenkette. υ Extrahieren char charat(int i) liefert das Zeichen an der Position i der Zeichenkette. Das erste Zeichen hat die Position 0. String substring(int begin) erzeugt einen String, der alle Zeichen des Strings, für den die Operation aufgerufen wurde, ab der Position begin enthält. String substring(int begin, int end) erzeugt einen String, der alle Zeichen ab der Position begin bis end - 1 enthält. String trim() schneidet alle zusammenhängenden Leer- und Steuerzeichen (das sind die Zeichen kleiner oder gleich '\u0020') am Anfang und Ende der Zeichenkette ab.

25 27 υ Vergleichen boolean equals(object obj) liefert true, wenn obj ein String ist und das aktuelle String- Objekt und obj die gleiche Zeichenkette repräsentieren. boolean equalsignorecase(string s) wirkt wie equals, ignoriert aber eventuell vorhandene Unterschiede in der Groß- und Kleinschreibung. boolean startswith(string s) liefert true, wenn die Zeichenkette im aktuellen String mit der Zeichenkette in s beginnt. boolean endswith(string s) liefert true, wenn die Zeichenkette im aktuellen String mit der Zeichenkette in s endet. υ Suchen int index0f(int c) liefert die Position des ersten Auftretens des Zeichens c in dieser Zeichenkette, andernfalls wird -1 zurückgegeben. int index0f(int c, int from) wirkt wie die vorige Operation mit dem Unterschied, dass die Suche ab der Position from in dieser Zeichenkette beginnt. int index0f(string s) liefert die Position des ersten Zeichens des ersten Auftretens der Zeichenkette s in dieser Zeichenkette, andernfalls wird -1 zurückgegeben. int index0f(string s, int from) wirkt wie die vorige Operation mit dem Unterschied, dass die Suche ab der Position from in dieser Zeichenkette beginnt. 26 28 υ Vergleichen boolean regionmatches(int i, String s, int j, int l) liefert true, wenn der Teilstring des Strings, der ab der Position i beginnt und die Länge l hat, mit dem Teilstring von s übereinstimmt, der an der Position j beginnt und l Zeichen lang ist. int compareto (String s) vergleicht diese Zeichenkette mit der Zeichenkette in s lexikographisch und liefert 0, wenn beide Zeichenketten gleich sind, einen negativen Wert, wenn diese Zeichenkette kleiner ist als die in s, und einen positiven Wert, wenn diese Zeichenkette größer ist als die in s. υ Suchen Die folgenden vier Operationen suchen analog nach dem letzten Auftreten des Zeichens c bzw. der Zeichenkette s: int lastindex0f(int c) int lastindex0f(int c, int from) int lastindex0f(string s) int lastindex0f(string s, int from)

29 31 υ Ersetzen String replace(char old, char new) erzeugt einen String, in dem jedes Auftreten des Zeichens old in der aktuellen Zeichenkette durch das Zeichen new ersetzt ist. String tolowercase() wandelt die Großbuchstaben der Zeichenkette in Kleinbuchstaben um und liefert diesen String dann zurück. String touppercase() wandelt die Kleinbuchstaben der Zeichenkette in Großbuchstaben um und liefert diesen String dann zurück. υ Beispielprojekt StringTest 30 Klassen mit static-elementen 32 υ Konvertieren static String value0f(typ x) wandelt x in einen String um. Typ steht für boolean, char, int, long, float, double, char[] und Object. Im letzten Fall wird "null" geliefert, falls das Objekt null ist, sonst wird x.tostring() geliefert. Java ist eine konsequent objektorientierte Sprache, in der es weder globale Funktionen noch globale Variablen gibt. Da es aber mitunter sinnvoll ist, Operationen aufzurufen, die nicht an Objekte einer Klasse gebunden sind, haben die Sprachdesigner den Modifikator static für Operationen und Variablen eingeführt.

Klassenattribute 33 Klassenattribute 35 Attribute, die mit dem Modifikator static versehen werden, nennt man Klassenvariablen oder Klassenattribute. Im Gegensatz zu den (normalen) Attributen, die an ein Objekt gebunden sind, existieren Klassenattribute unabhängig von einem Objekt. Jedes Klassenattribut wird nur einmal angelegt und kann von allen Operationen der Klasse benutzt werden. Da sich alle Objekte die Variable "teilen", sind Veränderungen, die ein Objekt vornimmt, auch in allen anderen Objekten der Klasse sichtbar. Ein Beispiel für die Verwendung eines Klassenattributes besteht darin, einen Objektzähler in eine Klasse einzubauen. Hierzu wird ein beliebiges Klassenattribut eingeführt, das beim Erzeugen eines Objekts hoch und beim Zerstören heruntergezählt wird. Das folgende Beispiel demonstriert das für die Klasse Auto: Klassenattribute Klassenattribute sind daher vergleichbar mit globalen Variablen, denn ihre Lebensdauer erstreckt sich auf das gesamte Programm. Namenskollisionen können allerdings nicht auftreten, denn der Zugriff von außen erfolgt durch Qualifizierung mit dem Klassennamen in der Form Klassenname.Variablenname. 34 Klassenattribute Beispiel class Auto static int objcnt = 0; Auto() ++objcnt; protected void finalize() --objcnt; public static void main(string[] args) Auto auto1; Auto auto2 = new Auto(); System.out.println("Anzahl Auto-Objekte: "+Auto.objcnt); auto2.finalize(); System.out.println("Anzahl Auto-Objekte: "+Auto.objcnt); 36

Klassenattribute 37 Konstanten 39 Wie lautet die Ausgabe des Programms? Durch die Anwendung von final wird verhindert, dass der Konstanten STEUERSATZ während der Ausführung des Programms ein anderer Wert zugewiesen wird. Die Konvention, Konstantennamen groß zu schreiben, wurde von der Programmiersprache C übernommen. Konstanten 38 Klassenoperationen 40 Eine andere Anwendung von Klassenattributen besteht in der Deklaration von Konstanten. Dazu wird der Modifikator static mit dem Modifikator final kombiniert, um eine unveränderliche Variable mit unbegrenzter Lebensdauer zu erzeugen: class Auto static final double STEUERSATZ = 18.9; Neben Klassenattributen gibt es in Java auch Klassenoperationen, d.h. Operationen, die unabhängig von einem bestimmten Objekt existieren. Klassenoperationen werden ebenfalls mit Hilfe des Modifikators static deklariert und - analog zu Klassenattributen - durch Voranstellen des Klassennamens aufgerufen.

Klassenoperationen 41 Klassenoperationen 43 Klassenoperationen können auf Klassenattribute zugreifen. Da Klassenoperationen unabhängig von konkreten Objekten ihrer Klasse existieren, ist ein Zugriff auf (normale) Attribute nicht möglich. Diese Trennung äußert sich darin, dass Klassenoperationen keinen this-zeiger besitzen. Der Zugriff auf Attribute und der Aufruf von (normalen) Operationen in einer Klassenoperation wird daher schon bei der Übersetzung durch den Compiler als Fehler erkannt. Die Klasse System ist eine Art Toolbox, die Funktionen für den Aufruf des Garbage Collectors oder das Beenden des Programms zur Verfügung stellt. Zur zweiten Gruppe gehören beispielsweise die Operationen der Klasse Math, die eine große Anzahl an Funktionen zur Fließkommaarithmetik zur Verfügung stellt. Da die Fließkommatypen primitiv sind, hätte ein objektbasiertes Design der Operationen an dieser Stelle wenig Sinn gemacht. Klassenoperationen 42 Klassenoperationen 44 Klassenoperationen werden häufig da eingesetzt, wo Funktionalitäten zur Verfügung gestellt werden, die nicht datenzentriert arbeiten oder auf primitiven Datentypen operieren. Beispiele für beide Arten sind in der Klassenbibliothek zu finden. Zur ersten Gruppe gehören beispielsweise die Operationen der Klasse System. Das folgende Programmbeispiel zeigt die Verwendung der Klassenoperation sqrt der Klasse Math zur Ausgabe einer Tabelle von Quadratwurzeln: public static void main(string[] args) double x, y; for (x = 0.0d; x <= 10.0d; x = x + 1.0d) y = Math.sqrt(x); System.out.println("sqrt("+x+") = "+y);

Statische 45 Statische 47 Bisher haben Sie nur die Möglichkeit kennen gelernt, Klassenattributen während der Deklaration einen Wert zuzuweisen. Falls komplexere Initialisierungen benötigt werden, können zur Initialisierung von Klassenattributen statische definiert werden. Sie ähneln gewöhnlichen und dienen wie diese dazu, Variablen mit einem definierten Startwert zu belegen. Beispiel: class Test static int i; static int j; static i = 5; j = 3 + i; υ Da er vom Java-Interpreter aufgerufen wird, wenn die Klasse geladen wird, ist eine benutzerdefinierte Parametrisierung nicht möglich. Statische 46 Statische 48 Im Gegensatz zu einem gewöhnlichen Konstruktor erfolgt der Aufruf eines statischen Konstruktors aber nicht mit jedem neu angelegten Objekt, sondern nur einmal zu Beginn des Programms. Ein statischer Konstruktor wird als parameterlose Operation mit dem Namen static definiert: υ Eine Klasse darf mehr als einen statischen Konstruktor definieren. υ Die werden dann in der Reihenfolge ihrer Deklaration aufgerufen.

Beispiel 49 51 ZaehlerTest MaxTest System υ Sie sind die Standarddatenströme zur Eingabe, Ausgabe und Fehlerausgabe. υ Die Klassen InputStream und PrintStream werden später im Rahmen der Dateiverarbeitung erläutert. υ Beispiel: System.out.println( Hallo ); υ Operationen: static void gc ruft den Garbage Collector auf static void exit(int status) beendet das laufende Programm. status wird an den Aufrufer des Programms übergeben. Üblicherweise signalisiert 0 ein fehlerfreies Programmende. 50 52 System υ Die Klasse System enthält wichtige Operationen zur Kommunikation mit dem zu Grunde liegenden Betriebssystem. υ Es können keine Objekte vom Typ System erzeugt werden. υ Alle Operationen von System sind Klassenoperationen. υ System enthält folgende Klassenattribute: final static InputStream in final static PrintStream out final static PrintStream err System υ Operationen static long currenttimemillis() liefert die Anzahl Millisekunden, die seit dem 1.1.1970 um 00:00:00 Uhr GMT bis zum Aufruf der Operation vergangen sind. static Properties getproperties() liefert die definierten Systemeigenschaften (System- Properties) der Plattform als Objekt der Klasse Properties. static String getproperty(string key) liefert den Wert der Systemeigenschaft mit dem Namen key oder null, wenn keine Eigenschaft mit diesem Namen gefunden wurde.

53 Beispiel 55 System υ Operationen: static String getproperty(string key, String defaultvalue) liefert den Wert der Systemeigenschaft mit dem Namen key oder den Wert defaultvalue, wenn keine Eigenschaft mit diesem Namen gefunden wurde. SystemTest 54 System Property file.separator java.class.path java.class.version java.home java.vendor java.vendor.url java.version line.separator os.arch os.name os.version path.separator user.dir user.home user.name Bedeutung Dateipfadtrennzeichen aktueller Klassenpfad Version der Klassenbibliothek Installationsverzeichnis Herstellername URL des Herstellers Java-Versionsnummer Zeilentrennzeichen Betriebssystemarchitektur Betriebssystemname Betriebssystemversion Trennzeichen in PATH-Angaben aktuelles Arbeitsverzeichnis Home-Verzeichnis Anmeldename