UTILITY-KLASSEN I WP: OOP MIT JAVA Koroyin, Ebibo INHALT z Die Klasse RANDOM (java.util) z Die Klassen DATE, CALENDAR (java.util) z Die Klasse SYSTEM (java.lang) z Die Klasse RUNTIME (java.lang) z Die Klasse ARRAYS (java.util) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Random (java.util) z z Erlaubt das Instanzieren eines Zufallszahlengenerators mit oder ohne manuelles Setzen des seed-Wertes Der Seed-Wert ist eine interne Zufallsvariable public random() Instanziieren ohne seed-Wert (parameterlose Konstruktur) public random(long seed) Instanziieren mit seed-Wert Zufallszahlengenerator initialisiert internen Zählern auf der Basis der aktuellen Systemzeit ¾ Folge der Zufallszahlen ist nicht reproduzierbar Zufallszahlengenerator initialisiert seinen internen Zähler mit dem seed-Wert. ¾ Folge der Zufallszahlen ist reproduzierbar WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Random (java.util) z Die Klasse Random ist im package java.util zu finden z Random erzeugt gleichverteilte Zufallszahlen für die numerische Grundtypen int, long, float oder double. z Sie enthält eine Reihe statischer Methoden zur Erzeugung von gleichverteilten Zufallszahlen. z Die Methoden nextInt, nextLong, nextFloat, nextDouble liefern jeweils Zufallszahlen aus dem gesamten Wertebereich des entsprechenden Grundtyps, also auch neg. Zahlen. z Die Methoden sind in der Java API zu finden WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Random (java.util) z Normalverteilte Zufallszahlen z Methode z public double nextGaussian() z Liefert die Zufallszahlen auf der Basis der Normalverteilung mit einem Mittelwert von 0.0 und der Standardabweichung von 1.0 WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Ursprünglich zur Darstellung und Manipulation von Datumswerten z Seit JDK1.0.2 gibt es die Klasse Calendar zur Verarbeitung von Datumswerten z Calendar stellt eine Kapselung für Date dar z Realisierung von einem Datum- /Uhrzeitobjekt z Stellt Methoden zur Konstruktion, Veränderung und Auslesen von Datums-/Uhrzeitbestandteilen und die Zeit- und Datumsarithmetik WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Calendar z Basisklasse z z Enthält Methoden für den Zugriff und Manipulation einzelner Elemente konkreter Kalenderklassen GregorianCalendar z Implementiert ein Datum nach gregorianischen Kalendar WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Konstruktoren (aus GregorianCalendar) z z public GregorianCalendar() public GregorianCalendar(int year, int month, int date) z public GregorianCalendar( z int year, int month, int date, int hour, int minute ) z public GregorianCalendar( z int year, int month, int date, int hour, int minute, int second ) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Abfragen und Setzen von Datumsbestandteilen mit den Methoden set und get z public final int get(int field) z public final void set(int field, int value) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Vergleiche und Datums-/Zeitarithmetik z Methoden z public boolean equals(object obj) z public boolean before(object obj) z public boolean after(object obj) z Methode add z public abstract void add(int field, int amount) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Date, Calendar……. z Umwandlung zwischen Date und Calendar z public final Date getTime() z public final void setTime(Date date) z public Date(long date) // Konstruktor z public long getTime() // Methode WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z Stellt nützliche Hilfsmittel zur Verfügung z Klasse System properties z Methoden z In, err and out z exit z gc z currentTimeMillis z arraycopy WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z Zugriff z Für den Zugriff auf diese Eigenschaften steht die Klasse Properties aus dem Paket java.util zur Verfügung. z Property-Listen zu erzeugen z mit Werten zu füllen und z vorhandene Werte auszulesen. z Zugriff auf einzelne Properties z public static String getProperty(String key) z public static String getProperty(String key, String default) z Die Methode getProperties liefert das komplette PropertiesObjekt mit den System-Properties: z public static Properties getProperties() WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z Einige Methoden tabellarisch dargestellt InputStream PrintStream PrintStream in out err void void long void String String Console exit gc currentTimeMillis arraycopy getenv getProperty Console Standard-Eingabe Standard-Ausgabe Fehlerausgabe (int status) () () () (String name) (String name) () Programmende Garbage Collector Aktuelle Zeit Arrays kopieren Umgebungsvariablen „Properties“ „Konsole“ der JVM Die Klasse System (Auszug) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z In, err and out z Mit Hilfe der Methoden setIn, setOut und setErr ist es sogar möglich, die Standardein- und -ausgabe aus dem Programm heraus umzuleiten: z public static void setIn(InputStream in) z public static void setOut(PrintStream out) z public static void setErr(PrintStream err) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z exit: (System.exit) z wird das laufende Programm beendet z public static void exit(int status) z gc: z z expliziter Aufruf des Garbage Collectors z public static void gc() currentTimeMillis: Liefert die Anzahl Millisekunden, die zum Zeitpunkt des Aufrufs seit Mitternacht des 1.1.1970 vergangen sind z currentTimeMillis (public static long currentTimeMillis() ) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse System (java.lang) z arraycopy z public static native void arraycopy( Object src, int src_position, Object dst, int dst_position, int length ) WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse RunTime (java.lang) z Grundlagen z public static Runtime getRuntime() z Um ein externes Programm zu starten, gibt es folgende vier Methoden mit dem Namen exec: z Public Process exec(String command) z Throws IOException z Public Process exec(String command, String[] envp) z Throws IOException z Public Process exec(String [] cmdarray) z Throws IOException z Public Process exec(String [] cmdarray, String[] envp) z Throws IOException WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse RunTime (java.lang) z Interaktion mit dem externen Programm z public abstract int waitFor() throws InterruptedException public abstract int exitValue() public abstract void destroy() public OutputStream getOutputStream() public abstract InputStream getInputStream() public abstract InputStream getErrorStream() WP: OOP MIT JAVA Koroyin, Ebibo Die Klasse Arrays (java.util) z Die wichtigsten Methoden sind z fill z Public static void fill(int[] a, int val) z binarySearch z Public static in binarySearch(int[] a, int key) z sort z Public static void sort(int[] a) z equals z Public static boolean equals(int[] a, int[] a2) WP: OOP MIT JAVA Koroyin, Ebibo Zusammenfassung z Alle vorgestellten Klassen nochmal z RANDOM z DATE, CALENDAR z SYSTEM z RUNTIME z ARRAYS z aus der Utility-Klassen I sind in den Java-Pakete java.lang und java.util enthalten WP: OOP MIT JAVA Koroyin, Ebibo Quellen z Handbuch z der Java-Programmierung Guido Krüger, Thomas Stark z 5. Auflage 2007 WP: OOP MIT JAVA Koroyin, Ebibo