Informatik 1, Kurzeinführung in Mini-Java WS 2000 JAVA BASICS Informatik 1, Kurzeinführung in Mini-Java WS 2000 2. Primitive Datentypen a) Boolean (logische Werte wahr & falsch) 1. Warum Java? Deklarationen boolean b; boolean b = true; final boolean b = false; (-> Konstantendeklaration) • weit verbreitet • einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection Literale true, false Operationen = (Zuweisung), ! (Negation), && (und), || (oder), == (gleich), != (ungleich) • objekt-orientiert Beispiele true && false true || false ! true boolean b = false; !b • interpretiert, d.h. plattformunabhängig • Programme mit Parallelverarbeitung möglich • “Internet - Sprache” [email protected] 1 / 12 [email protected] 2 / 12 Informatik 1, Kurzeinführung in Mini-Java WS 2000 Informatik 1, Kurzeinführung in Mini-Java b) Character (Zeichen) c) Integrale Typen Deklarationen char a; char a = 'a'; final char b = 'a'; • byte Literale ASCII: 'a', 'b', ..., 'z', 'A', 'B', ..., 'Z', '0', '1', ..., '9' escape char’s: '\t' (tab), '\n' (return), '\\' (\), '\”' (“) WS 2000 -128 .. 127 8 Bits • short -32768 .. 32767 16 Bits • int -2147483648 .. 2147483647 32 Bits • long ... 64 Bits Deklarationen byte b; short k = -128; final int i = 043; long l = 0xFF; Operationen =, ==, !=, +, -, *, /, % (modulo division), ++ (pre/post increment), -- (pre/post decrement) Operationen =, ==, != Beispiele 'a' == 'b' 'a' != 'b' Beispiele this = 8; that = 2; char a = 'a'; char b; b = a; this = that++ this = ++that x = this / that x = this % that (-> (-> (-> (-> this this x == x == == 2, that == 3) == 3, that == 3) 4) 0) Zuweisungskompatibilität byte < short < int < long, d.h byte kann short- oder int-Variablen zugewiesen werden, jedoch nicht umgekehrt. [email protected] 3 / 12 [email protected] 4 / 12 Informatik 1, Kurzeinführung in Mini-Java WS 2000 • float 32 Bits • double 64 Bits Deklarationen float f; double d = 0.5; final double pi = 3.14156; .3 1e1 1e-10 Index 0 .. size - 1 Beispiele float f = 1.0; double d = 1e10; double e = 1e100; = = = = f; d; (float)d; (float)e; Operationen [] length() (-> d == 1.0) (Fehler!) (-> f == 1e10) (-> ??) Beispiele b[0] = 3; 3 == b[0] b[1] = b[0] + 4; b[1024] = 5; b.length() Zuweisungskompatibilität . . . long < float < double [email protected] -> Reihungen beliebiger Datentypen Deklarationen byte b[] = new byte[1024]; char[] c, d = new char[5]; int [] p = {1, 2, 3, 4}; Operationen =, ==, !=, +, -, *, /, d f f f WS 2000 3. Arrays (Reihungen, Felder) d) Gleitkomma-Typen Literale 1.3 Informatik 1, Kurzeinführung in Mini-Java 5 / 12 [email protected] (-> (-> (-> (-> (-> b[0] == 3) true) b[1] == 7) FEHLER!!) 1024) 6 / 12 Informatik 1, Kurzeinführung in Mini-Java WS 2000 4. Strings (≈ ≈ Array’s of char) Informatik 1, Kurzeinführung in Mini-Java WS 2000 5. Anweisungen a) Zuweisung x = 3; y = x + 123; Deklarationen: String gruss = new String ("hallo"); String gruss1 = "hallo"; String gruss2 = new String(gruss); b) if-Anweisung if (x == 3) { Anweisungsfolge } else { alternative Anweisungsfolge, optional } Literale "...", "42", "hallo\n", "\”" Operationen length(), + (Konkatenation), charAt() c) switch-Anweisung Beispiele (sei int x = 10) gruss + "xyz" gruss + 42 gruss + x + true + "x" gruss.length() == 5 gruss2.charAt(4) (-> “halloxyz”) (-> "hallo42") (-> hallo10truex) byte b; ... switch (b) { case 1: Anweisungsfolge break; case -100: Anweisungsfolge break; . . . default: Anweisungsfolge } Achtung: • Immer break & default verwenden!!! (-> o) • Mögliche Typen für die Auswahl: boolean, byte, char, short, int, long [email protected] 7 / 12 [email protected] 8 / 12 Informatik 1, Kurzeinführung in Mini-Java WS 2000 Informatik 1, Kurzeinführung in Mini-Java 6. Das erste Java-Programm d) while-Schleife int i = 10; while (i < 0) { Anweisungsfolge } Datei Hello.java public class Hello { // Kommentar: // Jedes Javaprogramm besteht aus einer // Ansammlung von “Klassen”, wobei jede // Klasse in ihrer eigenen Datei // untergebracht ist. Diese Datei muss // ebenso wie die Klasse heissen! e) do-while-Schleife do { Anweisungsfolge } while (i > 10) public static void main (String argv[]) { /* Noch ein Kommentar: Diese Klasse enthaelt eine Funktion main() mit genau diesem Kopf! Diese Funktion ist der Einstiegspunkt in das Programm. */ String s = “hello”; System.out.println(s + “ World\n”); // Ausgabe System.exit(0); // Termination mit Rueckgabewert 0 } f) for-Schleife (Zählschleife) for (int i = 0; i < 10; i++) { Anweisungsfolge } entspricht } int i = 0; while (i < 10) { Anweisungsfolge i++; } [email protected] WS 2000 9 / 12 [email protected] 10 / 12 Informatik 1, Kurzeinführung in Mini-Java WS 2000 Informatik 1, Kurzeinführung in Mini-Java WS 2000 7. Java-Programm Max Problem: Eingelesen werden k Zahlen, ausgegeben wird deren Maximum! import dssz.io.stdin; public class Max { private static int maximum(int[] numbers) { ... } public static void main(String argv[]) { int i = 0; int k = 0; int[] numbers; stdin eingabe = new stdin(); System.out.print(“Wieviel Zahlen: “); k = eingabe.getIntNumber(); numbers = new int[k]; for(i = 0; i < k; i++) { numbers[i] = eingabe.getIntNumber(); } System.out.println( “Maximum ist“ + maximum(numbers)); System.exit(0); } private static int maximum(int[] numbers) { int i = 0;// Zaehlvariable int max = 0;// Ergebnisvariable if(numbers.length == 0) { max = 0; } else if (numbers.length == 1) { max = numbers[0]; } else { max = numbers[0]; for(i = 1; i < numbers.length; i++) { if(max < numbers[i]) { max = numbers[i]; } } } return max; } } [email protected] 11 / 12 [email protected] 12 / 12