Bibliotheken (Java API)



Ähnliche Dokumente
Wie entwerfe ich ein Programm?

Liste Programmieren Java Überblick

Strings in Java. Die String Klasse und Methoden. A. Müller

Die einfachsten Anweisungen

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Der Datentyp String. Stringvariable und -vergleiche

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

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

Klausur Grundlagen der Programmierung

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Das Einsteigerseminar Objektorientierte Programmierung in Java

Einführung in die Programmierung 1

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Einführung in die Programmierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Einführung in Java. Ausgewählte Quellen zu Java

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Java Einführung Packages

Probeklausur: Programmierung WS04/05

Computeranwendung und Programmierung (CuP)

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Aufbau einer typischen Java-Datei

Übungen zur Vorlesung Wissenschaftliches Rechnen I

II.1.1. Erste Schritte - 1 -

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Programmierung mit Java

Übung Praktische Informatik I

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Objektorientierte Programmierung in Java

Vorkurs: Java-Einführung

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

Abend 4 Übung : Erweitern von Klassen durch Vererbung

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

Java Programmierung auf der Konsole / unter Eclipse

Computeranwendung und Programmierung (CuP)

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Programmiervorkurs Einführung in Java Tag 1

Erste Java-Programme (Scopes und Rekursion)

Programmierkurs Java

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Repetitorium Informatik (Java)

Selbsteinstufungstest Vorkurs Programmieren

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

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

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

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

Übungsblatt 1. Java Vorkurs (WS 2017)

7. Pakete Grundlagen der Programmierung 1 (Java)

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

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

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

public class SternchenRechteckGefuellt {

II.1.1. Erste Schritte - 1 -

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!

Programmieren 2 Java Überblick

Objektorientierte Programmierung. Kapitel 17: Strings

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Java Einführung Objekt-Datentypen und Strings. Kapitel 8 und 9

Welche Informatik-Kenntnisse bringen Sie mit?

1 Klassen anlegen und Objekte erzeugen

Transkript:

7 Bibliotheken 7-1 Inhalt Bibliotheken (Java API) Pakete Strings Übungsaufgaben Pakete Die vordefinierten Klassen von Java sind in Pakete organisiert. Die Gesamtheit dieser Pakete bildet die API (Application Programming Interface). Jedes Paket entspricht im Prinzip einem Directory. Daher sind die Pakete auch hierarchisch angeordnet. Das Paket, in dem unsere Programme bisher die Klassen ablegten, war das default-paket. Die Klassen wurden im aktuellen Directory vom Compiler abgelegt, und dort vom Interpreter gefunden. Außerdem lädt jedes Programm das Paket java.lang, das der Compiler an einem vordefinierten Platz findet. Um diese Details muß sich der Programmierer nicht kümmern, da das aktuelle Directory und das Directory, wo sich lang befindet, im normalen Klassenpfad enthalten sind. Dieser Pfad kann übrigens durch Setzen der Environment-Variablen CLASSPATH geändert werden. Java kann auch mit komprimierten Paketen umgehen. So sind etwa alle Klassen lang.* in eine Datei classes.zip gepackt. Eine solche Datei muß ebenfalls im Klassenpfad sein, damit sie gefunden wird. Man spricht von archivierten Klassen. Insbesondere beim Laden über das Internet ist eine solche Komprimierung nützlich. Man verwendet allerdings den Komprimierer jar, der ganz in Java geschrieben ist, und Archive mit der Endung.jar erzeugt. Es folgt eine Übersicht über wichtige Pakete, die in Java 1.1 definiert sind. java.awt java.beans java.io Dies ist das abstract windowing toolkit. Es enthält Klassen zur Grafikausgabe und zur Erzeugung von graphischen Benutzeroberflächen (GUI). Die Beans-Technologie soll fertige Elemente zur Programmierung, insbesondere von graphischen Benutzeroberflächen, liefern. Der Zweck ist, visuelle Programmierung zu ermöglichen. Klassen zur Ein- und Ausgabe von Dateien, vom Netz oder von

7 Bibliotheken 7-2 anderen Quellen. java.lang java.math java.net java.rmi java.security java.text java.util Dieses Paket wird automatisch geladen. Es enthält wichtige Dinge, wie die String-Klasse. Java unterstützt den Umgang mit langen Zahlen in diesem Paket in Form von großen Dezimalzahlen und großen Ganzzahlen. Java unterstützt mit diesem Paket die Kommunikation über das Internet. Es gibt in diesem Paket eine Klasse, die es erlaubt Methoden von Klassen an entfernten Rechnern über das Netz oder von anderen parallel laufenden Programmen aufzurufen. Da Java von vornherein eine Sicherheitsphilosophie verfolgt, unterstützt es in diesem Paket Verschlüsselung. Da Java schon Unicode benutzt, bietet dieses Paket Schnittstellen für die Entwicklung internationalisierter Programme. Enthält einige Datenstrukturen, wie wachsende Arrays oder auch Stapelspeicher, sowie andere nützliche Dinge. Man kann auch sein eigenes Programm in Pakete organisieren. Dazu muß man die Klassendateien in Unterverzeichnisse abspeichern, aber vom Hauptverzeichnis aus kompilieren. Dies sieht so aus javac MyPackage/Test.java wenn Test.java eine Datei im Verzeichnis MyPackage ist. Außerdem muß die Datei Test.java gleich zu Beginn das Kommando package MyPackage; enthalten, also noch vor der ersten Klassendefinition. Drittens müssen alle Dateien, die Test.java verwenden wollen (außer den Dateien in MyPackage), die Klasse importieren. import MyPackage.Test; oder auch import MyPackage.*; Diese Anweisung importiert gleich alle Klassen im Paket MyPackage. Die import- Anweisungen müssen vor den Klassen-Definitionen stehen, aber nach der package- Anweisung. Insbesondere müssen Klassen aus den vordefinierten Paketen importiert werden (außer aus java.lang). Alternativ kann man die Klasse auch mit vollem Namen ansprechen. MyPackage.Test t=new MyPackage.Test();

7 Bibliotheken 7-3 Strings Strings sind in java.lang definiert. Die String-Klasse hat in Java einen Sonderstatus. Z.B. wurden für sie eigene Konstanten eingeführt, nämlich "...". Man kann daher schreiben String s="dies ist eine String-Konstante"; Außerdem gibt es den speziellen Operator + für Strings. Dieser Operator kann sogar Strings mit elementaren Datentypen addieren, die dann in Strings umgewandelt werden. String s="hallo"; s=s+'!'; // s ist nun "Hallo!" Hier wurde ein char-wert an einen String gehängt. Wir haben bei der Ausgabe schon mehrfach double- oder int-werte mit Strings verkettet. In der Tat kann + jedes Objekt verarbeiten, das eine sinnvolle tostring() Methode hat. class Winkel { double Alpha; public Winkel (double alpha) { Alpha=alpha; public String tostring () { return ""+Alpha; // einfache Umwandlung von double zu String { String s="wert "; Winkel a=new Winkel(Math.PI); s=s+a; System.out.println(s); // druckt: Wert 3.141592653589793 Das Beispiel zeigt auch, wie man einen double-wert zu einem String umwandeln kann. Man addiert ihn einfach zu "". Natürlich hat die String-Klasse auch eine Reihe von Methoden. Am besten informiert man sich darüber in der Java-Dokumentation. Strings lassen sich nicht nur mit Hilfe von ="..." initialisieren, sondern auch über den Inhalt eines Arrays von char-werten oder von byte-werten. Dies wird über Konstruktoren erreicht. Dazu ein Beispiel: { char c[]={'h','a','l','l','o'; String s=new String(c); // char-array nach String umwandeln System.out.println(s); Natürlich ist auch der umgekehrte Weg möglich.

7 Bibliotheken 7-4 { String s="hallo"; char c[]=s.tochararray(); // Umwandeln in char-array for (int i=0; i<c.length; i++) System.out.print(c[i]); System.out.println(); Hier wird der String Buchstabe für Buchstabe ausgegeben. Der String bietet außerdem Methoden zum Bilden von Teilstrings und zum Suchen. Wir haben Strings bisher, außer in Konstanten, schon in dem args-parameter von main kennengelernt. Dieser Parameter enthält ein Array von Strings. Dazu folgendes Beispiel, das ein Wort aus der Kommandozeile entgegennimmt und rückwärts wieder ausgibt. { if (args.length==1) { char c[]=args[0].tochararray(); for (int i=c.length-1; i>=0; i--) System.out.print(c[i]); System.out.println(); Das Programm funktioniert folgendermaßen: D:\java\kurs>java Test hallo ollah Übungsaufgaben 1. Informieren Sie sich in der Dokumentation über die Klasse BitSet. Schreiben Sie ein Primzahlsieb für die Primzahlen bis 1000000. Dazu initialisieren Sie alle Bits mit true und streichen dann die Vielfachen aller Zahlen (Bit auf false setzen), die bisher noch nicht gestrichen wurden (die Primzahlen). Zählen Sie die Primzahlen bis 1000000 auf diese Weise. 2. Machen Sie das Sieb aus 1. effektiver, indem Sie nur die nötigen Vielfachen streichen und nur Bits für ungerade Zahlen setzen. 3. Schreiben Sie ein Unterprogramm, das testet, ob ein String ein Palindrom ist (das ist ein Wort, das vorwärts wie rückwärts gleich lautet). Nutzen Sie dazu die Methode charat() von String. 4. Informieren Sie sich in der Dokumentation über die Klasse StringBuffer, die einen String darstellt, der dynamisch wachsen kann. Schreiben Sie ein Programm, das in einem String jedes Vorkommen von Doppelbuchstaben streicht, indem Sie den String in einen dynamisch wachsenden Stringbuffer kopieren.

7 Bibliotheken 7-5 Aufgaben ohne Lösung 1. Nützen Sie die Vector-Klasse, um die ersten 100000 Primzahlen abzuspeichern. Lösung. 2. Schreiben Sie Programm, das aus einem String den Teil zwischen den beiden Klammern ( und ) ausschneidet, bzw. den leeren String "", wenn diese Klammern im String nicht vorkommen. Falls Sie dabei die Methode indexof() von String verwenden, beachten Sie Sonderfälle wie "a)(avc)". 3. Schreiben Sie 2., indem Sie ein char-array von dem String anlegen. 4. Schreiben Sie ein Unterprogramm, das einen String umkehrt. Benutzen Sie dazu ein char-array oder den StringBuffer (aber nicht seine Methode reverse()!).