Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 I. Aufbau eines Java-Programmes Escape-Sequenzen zur Steuerung von Ausgaben: \b \t \n \f \r \“ \’ \\ backspace horizontaler Tab Line feed LF form feed (Leerzeichen) carrige return CR Anführungszeichen Hochkomma backslash Datentypen Integer-Zahlen Typ byte short int long char boolean (belegen immer 32 Bit) von -128 -32768 -2147483648 -9223372036854775808 0 false (Standard) bis 127 32767 2147483647 9223372036854775807 65535 true Fließkomma-Zahlen Typ Genauigkeit float 32 bit, 7 Stellen genau double 64 bit, 16 Stellen genau Strings Typ String StringBuffer Beschreibung Zeichenketten fester Länge varible Zeichenketten Beispiele von Datentypvereinbarungen: int x; long y=99999; mit Wertzuweisung (Initialisierung) int x,y,z=123,abc; ____________________________________ Arbeitsblätter zur VL OOP ; Java 1 Seite 1 double a,b; String test=“ „; //Definition einer statischen Zeichenkette Konstanten werden mit dem Schlüsselwort final deklariert. Bsp.: final int Konst = 8; Funktionen (Beispiele) 1. class fdrucken { public static void main(String args[]) { System.out.print("\nMit 'print' und 'println' kann man alles"); drucken(" 6*7="+6*7); // Aufruf der Funktion } public static void drucken(String satz) // Funktion { System.out.println(satz); } } 2. class mwst { public static void main(String arg[]) { double mw; mw=Mwst(150,15); System.out.println(mw); } public static double Mwst(double wert,double prozent) { double Mwstbetrag; Mwstbetrag=wert/100*prozent+wert; return Mwstbetrag; } } Programmstrukturen If-Anweisung: if(ausdruck) { anweisungen ... } else { anweisungen ... } ____________________________________ Arbeitsblätter zur VL OOP ; Java 1 Seite 2 Vergleichsoperatoren Zeichen Bedeutung < kleiner als > größer als <= kleiner oder gleich >= größer oder gleich instanceof Typ-Vergleich == gleich != ungleich logische Operatoren Operator Bedeutung && UND (wird zuerst ausgeführt) || ODER ! NICHT for-Schleife: Zählschleife, man weiß zu Beginn genau, wie oft die Schleife durchlaufen wird for(startwert;bedingung;schleifenwert) { anweisungen .... } Beispiel: class schleife { public static void main(String args[]) { double i; for (i=1.5;i<=5;i=i+0.5) { System.out.print(i+" "); } System.out.print("\n"+i); } } Bildschirmausgabe: 1.5 2.0 ......5.0 5.5 Inkrement und Dekrement: Inkrement: i++ à i=i+1 Dekrement: i-- à i=i-1 ____________________________________ Arbeitsblätter zur VL OOP ; Java 1 Seite 3 while-Schleife: abweisende oder auch kopfgesteuerte Schleife while(ausdruck) // führe aus, solange die Bedingung wahr ist { anweisungen .... } do-Schleife: fußgesteuerte Schleife; diese Schleife wird mindestens einmal ausgeführt; do { anweisungen ... }while (ausdruck); // Führe aus, solange der Ausdruck wahr ist Beispiel: class do_schl { public static void main(String args[]) { int i=0; do // bei nur einer Anweisung in der Schleife können {} weggelassen werden System.out.print(i++ + " "); while (i<=10); // wiederhole, solange i<= 10 ist System.out.println("\n"+i); } } Bildschirmausgabe: 0 1 2 3 4 5 6 7 8 9 10 11 switch-Anweisung: auch als Fallunterscheidung bekannt switch (ausdruck) // Typ des Ausdrucks muß abzählbar sein { case konstante1: // der Typ der Konstanten entsprechen dem Typ im Ausdruck von switch anweisungen // Beachte, daß die Anweisungen nicht in {} stehen müssen .... break; // break unterbricht die Programmausführung und springt hinter die switch-Struktur case konstante2: anweisungen ... // fehlt die break-Anweisung, wird beim nächsten case fortgesetzt case konstante n: anweisungen ... ____________________________________ Arbeitsblätter zur VL OOP ; Java 1 Seite 4 default: // wenn kein Fall zutrifft, wird default ausgeführt; // existiert kein default, wird hinter der switch- Struktur fortgesetzt anweisungen ... } break und continue: break beendet eine Programmstruktur; continue überspringt die restliche Anweisungen in einer Schleife und startet den nächsten Durchlauf Felder Bsp.: class felder { public static void main (String args[]) { final int anz=32; double[] temp=new double[anz]; // 32 Feldelemente, um bei Index 1 zu beginnen //Deklaration und Erzeugen des Feldes System.out.println("Anzahl der Feldelemente: "+ temp.length); // Ausgabe: 32 for (int x=1;x<temp.length;x++) // Das Feld wird von temp[1] bis temp[31] bearbeitet { // Die Angabe von <= ist nicht möglich, da // x in der Schleife bis 33 hochgezählt würde temp[x]=x; System.out.print(x+"="+temp[x]+" "); } } } Der try-catch Block Die Stellen in einem Programm, an denen Fehler auftreten können, werden in einem Block zusammengefaßt, der mit try beginnt. Sobald ein Fehler auftritt, wird eine Exception ausgelöst, die im anschließenden catch-Block behandelt wird. Der catch-Block folgt unmittelbar auf den try-Block. Beispiel: ... try { for (i=0;i<N; i++) //wenn N> i ist, kommt es zum Fehler { System.out.println(„s[i] = „ + s[i]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println („Fehler in Bereichsgrenzenüberschreitung aufgetreten“); ... Beispiel in Programmsammlung: e.java ____________________________________ Arbeitsblätter zur VL OOP ; Java 1 Seite 5