• Keine Ergebnisse gefunden

Programmierkurs Java iS

N/A
N/A
Protected

Academic year: 2021

Aktie "Programmierkurs Java iS"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

iS

Dr.-Ing. Dietrich Boles

Programmierkurs Java

UE 16 – JDK Klassenbibliothek

(2)

iS

Gliederung

▪ Übersicht

▪ java.lang.String

▪ java.lang.Integer

▪ Boxing

▪ java.util.ArrayList

▪ Zusammenfassung

(3)

iS

Übersicht (1)

▪ Wird von Version zu Version erweitert

▪ die wichtigsten Pakete:

– java.applet: Java-Applets (Applet, ...)

– java.awt: graphische Oberflächen (Fenster, GUI-Komponenten, Graphik, Layout-Manager, Container, ...)

– java.awt.datatransfer: Datentransfers zwischen Applikationen (Clipboards, ...) – java.awt.event: Event-Handling (Maus-Events, Tastatur-Events, ...) – java.awt.image: Bildverarbeitung (Farbe, Filter, ...)

– java.beans: Java-Beans-API (Properties, Introspektion, ...) – java.io: Ein-/Ausgabe (Streams, Dateien, ...)

– java.lang: Basis-Klassen (System, Object, Runtime, String, ...) – java.lang.reflect: Java Reflection API (Introspektion, ...)

(4)

iS

Übersicht (2)

– java.math: Mathematik (Integer-, Floating-Point-Arithmetik, ...) – java.net: Netzwerke (Sockets, URL, HTTP, ...)

– java.rmi: Client-Server-Programmierung (RMI) – java.security: Sicherheit

– java.sql: JDBC-Datenbankzugriff

– java.text: Internationale Programme (Texte, Datum, ...)

– java.util: Nützliche Klassen (Speicher (Vector, HashTable, BitSet, Stack, ...), Datum, Random, Scanner, ...)

– javax.swing: Swing-Klassen (fortgeschrittene GUI-Programmierung) – javax.xml: Umgang mit XML

– org.omg.CORBA: Client-Server-Programmierung (CORBA) – …

Dokumentation: https://docs.oracle.com/en/java/javase/index.html

(5)

iS

java.lang.String (1)

package java.lang;

class String { String();

String(char[] zeichen);

char charAt(int index);

String concat(String str);

int indexOf(char zeichen);

int length();

String replace(char alt, char neu);

String substring(int vonIndex, int bisIndex);

static String valueOf(int zahl);

...

}

(6)

iS

java.lang.String (2)

import java.lang.String; // muss nicht

class StringTest {

public static void main(String[] args) { String str1 = "Hallo dibo!";

char ch = str1.charAt(1); // ch == 'a';

int index = str1.indexOf('o'); // index == 4

String str2 = str1.replace('o', 'i'); // "Halli dibi!"

str2 = str1.substring(0, 5); // "Hallo"

str2 = String.valueOf(4711); // "4711"

} }

(7)

iS

java.lang.Integer

package java.lang;

class Integer {

Integer(int value);

static Integer valueOf(int value);

int intValue();

String toString();

...

}

int intWert1 = 47;

Integer intObj = Integer.valueOf(intWert1); ...

int intWert2 = intObj.intValue();

Sinn: Behandlung von int-Werten als Objekte (→ Wrapper-Objekte)

Analoge Klassen: Short, Long, Float, Double, Boolean, ...

(8)

iS

Boxing (1)

class Wrapper { // Java 1.4

public static void main(String[] args) { Integer[] speicher = new Integer[3];

// speicher[0] = 4711; // Fehler bis Java 1.4 speicher[0] = new Integer(4711);

speicher[1] = Integer.valueOf(46);

speicher[2] = Integer.valueOf(33);

int summe = 0;

for (int i = 0; i < speicher.length; i++) { summe += speicher[i].intValue();

}

System.out.println(summe);

}

}

(9)

iS

Boxing (2)

class Boxing { // Java 5.0

public static void main(String[] args) { Integer[] speicher = new Integer[3];

speicher[0] = 4711;

// Autoboxing (Compiler-Rewriting) speicher[1] = 46;

speicher[2] = 33;

int summe = 0;

for (int i = 0; i < speicher.length; i++) { summe += speicher[i];

// Unboxing (Compiler-Rewriting) }

System.out.println(summe);

} }

(10)

iS

java.util.ArrayList (1)

package java.util;

class ArrayList { // in der Version Java 1.4 (ohne Generics) ArrayList();

void add(Object o); // Polymorphie Object get(int index);

boolean contains(Object o);

int size(); ...

}

ArrayList list = new ArrayList();

String str;

do {

list.add(str = IO.readString());

} while (!str.equals("ende"));

String ersterString = (String) list.get(0);

Typecast notwendig

(11)

iS

java.util.ArrayList (2)

package java.util;

class ArrayList<T> {// mit Generics, T = bel. Referenztyp ArrayList();

void add(T o);

T get(int index);

boolean contains(T o);

int size(); ...

}

ArrayList<String> list = new ArrayList<String>();

String str;

do {

list.add(str = IO.readString());

} while (!str.equals("ende"));

String ersterString = list.get(0);

Kein Typecast notwendig

(12)

iS

java.util.ArrayList (3)

ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = IO.readInt(); i >= 0; i--) { list.add(i * i);

}

int value = list.get(0);

for (int value : list) {

System.out.println(value);

}

Boxing (int → Integer)

Nutzung der for-each-Schleife

(13)

iS

Zusammenfassung

▪ JDK-Klassenbibliothek:

standardisierte Sammlung von zahlreichen nützlichen Klassen für vielfältige Anwendungsgebiete

▪ Boxing:

Automatische Umwandlung von Standard- in Referenzdatentypen und umgekehrt

▪ java.util.ArrayList:

Klasse für flexibel große Container-Objekte (Alternative zu

Arrays)

Referenzen

ÄHNLICHE DOKUMENTE

formale Parameter definiert, so werden als aktuelle Parameter die Referenzen als Wert übergeben; in einer Funktion können in diesem Fall die referenzierten Variablen

▪ Klassen dürfen nicht innerhalb einer anderen Klasse definiert werden (gilt nur für uns!). ▪ Wichtig: Diese Regeln werden später noch

– Klassenbezeichner muss Name einer gültigen Klasse sein – Bezeichner sind Objektvariablen (&#34;Namen für Objekte&#34;) – Objektvariablen sind Referenzvariablen}. –

suchen: prevElem mit prevElem.next == oldElem prevElem.next = oldElem.next;. next

 Überschreiben von Methoden: Ersetzung der Implementierung einer Methode einer Oberklasse durch eine neue. Implementierung; die Methoden müssen identische Signaturen

 Klassenbibliothek: Sammlung von nützlichen, häufig gebrauchten Klassen, die (anderen) Programmierern zur Verfügung gestellt werden..  Java-Packages: Hilfsmittel zur

 In einer Datei können mehrere Klassen definiert werden, aber nur eine darf eine public-Klasse sein. Der Name der Datei muss in diesem Fall gleich dem Namen der

– beim Aufruf einer Instanz-Methode über eine Objektvariable wird diejenige Methode ausgeführt, die der Klasse des referenzierten Objektes zugeordnet ist ( überschriebene