CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002 Zeichenketten (Strings) Die Klasse für Zeichenketten in Java ist die Klasse Strings. Initialisierung durch Stringliteral (z.B. wort = "ABCD") oder, wie sonst bei Objekten, durch Instanziierung mit new. public class Buchstaben0{ public static void main ( String args[ ] ) { String wort = "ABCD"; String anderesWort = new String(" Hallo"); System.out.println ( wort + anderesWort); } } 14. Oktober 2002 CuP WS 2002/2003 2 Einige Methoden der Klasse String length() charAt(integer) indexOf(character) Diese Methoden können für jede Instanz der Klasse String verwendet werden. Für die Instanz wort durch: wort.length( ); wort.charAt(...); wort.indexOf(...); Bemerkung: char ist ein primitiver Datentyp, Skriptum S 20 14. Oktober 2002 CuP WS 2002/2003 3 Beispiel für length() public class Buchstaben1{ public static void main ( String args[ ] ) { String wort = "ABCD"; System.out.println ( wort ); int i = wort.length( ); System.out.println( i ); } } 14. Oktober 2002 CuP WS 2002/2003 4 Ausgabe: ABCD 4 „wort“ ist eine Instanz der Klasse String, also ein Objekt der Klasse String. Als solches stehen „wort“ alle Instanzmethoden dieser Klasse zur Verfügung. 14. Oktober 2002 CuP WS 2002/2003 5 Beispiel für charAt( ) und indexOf( ) public class Buchstaben2{ public static void main (String args[ ] ) { String wort = "ABCD"; System.out.println("Der Buchstabe mit Index 3 ist: " + wort.charAt(3)); System.out.println("Der Index des Buchstaben C ist: " + wort.indexOf ( "C“ ) ); } } Ausgabe: Der Buchstabe mit Index 3 ist: D Der Index des Buchstaben C ist: 2 14. Oktober 2002 CuP WS 2002/2003 6 Wozu dient String[ ] args ? public class Gruss{ public static void main(String[ ] args){ System.out.println(args[0]); } } Dient zur Parameterübergabe. Beispiel: java Gruss "Guten Morgen!" 14. Oktober 2002 CuP WS 2002/2003 7 Ausgabe: Guten Morgen! Schreiben wir aber java Gruss Guten Morgen! So erhalten wir die Ausgabe: Guten 14. Oktober 2002 CuP WS 2002/2003 8 Mehrere Parameter Neue Druckanweisung: System.out.println(args[0] + " " + args[1]); Durchführungsanweisung: java Gruesse Guten Morgen! Ausgabe: Guten Morgen! 14. Oktober 2002 CuP WS 2002/2003 9 Typenumwandlung von Strings Von welchem Typ ist args[2] nach folgender Eingabe: java Gruesse Guten Morgen 42 Natürlich vom Typ String ! Umwandlung in den primitiven Typ int etwa so: int i; i = Integer.parseInt (args[2]); 14. Oktober 2002 CuP WS 2002/2003 10 Variable vom Typ int und double -Deklaration int ist der Datentyp für ganze Zahlen. Wertebereich von -2 147 483 648 bis +2 147 483 647. double ist der Datentyp für Dezimalzahlen. Wertebereich von etwa -1.7 e308 bis +1.7 e308. Anweisungen der Form int a, breite, i; double x, y; deklarieren int- und double-Variable. 14. Oktober 2002 CuP WS 2002/2003 11 Initialisierung von Variablen Die Anweisungen int n; // n = 5; // und int n = 5; // sind gleichwertig. Analog bei double: double x; // x = 2.5; // oder double x = 2.5; // 14. Oktober 2002 Deklaration Initialisierung Deklaration mit Initialisierung Deklaration Initialisierung Deklaration und Initialisierung CuP WS 2002/2003 12 Die wichtigsten Operationen mit Zahlen Zuweisung = i = 25; Addition Subtraktion + - a+b a-b Multiplikation Division Rest nach Division * / % a*b a/b 7%4 Inkrementierung ++ i++ 14. Oktober 2002 CuP WS 2002/2003 13 Test für Ganzzahloperationen class Ganzzahltest{ public static void main(String args[]){ int x, y, z; x= 7; y = 4; System.out.println("x ist " + x + ", y ist " + y); z = x + y; System.out.println("x + y = " + z); System.out.println("x + y = " + (x + y)); System.out.println("x - y = " + (x – y)); System.out.println("x * y = “ + (x*y)); System.out.println("x / y = " + (x / y)); System.out.println("x % y = " + (x % y)); } } 14. Oktober 2002 CuP WS 2002/2003 14 14. Oktober 2002 CuP WS 2002/2003 15 Double Test class DoubleTest{ public static void main(String args[]){ double a, b; a = 7.46; b = 4.23d; System.out.println("a ist " + a + ", b ist " + b); System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a*b)); System.out.println("a / b = " + (a / b)); System.out.println("a % b = " + (a % b)); } } 14. Oktober 2002 CuP WS 2002/2003 16 Umwandlung von Datentypen int wert = 24; double dwert = 2.8; int i; double x; x = wert; // x wird 24.0 durch Zuweisung i = (int) dwert; x = (double) (22 -13) / 2; // i wird 2 // x wird 4.5 Casting Casting x = 2. / 5; 14. Oktober 2002 durch durch // 2. / 5 wird automatisch als double berechnet CuP WS 2002/2003 17 Hilfe Suchen und Finden – API Specification JavaTM 2 Platform, Standard Edition, v 1.3.1 API Specification: Wo?: \jdk1.3.1\docs\api\ index.html Was finde ich?: Dokumentation aller Java Klassen und Interfaces 14. Oktober 2002 CuP WS 2002/2003 18 Hilfe Suchen und Finden – SDK Documentation Java 2 SDK, Documentation: Wo?: \jdk1.3.1\docs\ guide\index.html Was finde ich?: Die gesamten Features des Software Development Kits (SDK), von I/O Funktionen bis zu den Java Foundation Classes (JFC) 14. Oktober 2002 CuP WS 2002/2003 19 Hilfe Suchen und Finden - Internet Tutorials & Short Courses Wo?: http://developer.ja va.sun.com/devel oper/ onlineTraining/ Was finde ich?: Kurzanleitungen zu Java spezifischen Themen, von den ersten Schritten in Java („Your First Cup of Java“) bis zu GUI Programmierung 14. Oktober 2002 CuP WS 2002/2003 20