360 likes | 780 Views
Einführung in die Programmierung mit Java. 2. Vorlesung WS 2001/2002. Übersicht. Besprechung der Übungsaufgabe Struktur von Java-Programmen Aufbau eines Java-Programms Sprachelemente Variablen und primitive Datentypen Wertzuweisung Ausdrücke und Operatoren arithmetische Terme
E N D
Einführung in die Programmierung mit Java 2. Vorlesung WS 2001/2002
Übersicht • Besprechung der Übungsaufgabe • Struktur von Java-Programmen • Aufbau eines Java-Programms • Sprachelemente • Variablen und primitive Datentypen • Wertzuweisung • Ausdrücke und Operatoren • arithmetische Terme • Boolesche Ausdrücke (Aussagenlogik) • Typkonversion T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Übungsaufgabe vom 24. 10. • Ausgabe einer Visitenkarte auf dem Bildschirmz.B.: ********************************** * * * Thomas H. Kolbe * * Wissenschaftlicher Assistent * * am IKG, Uni Bonn * * * ********************************** T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Lösung: Folge von Ausgabe-Anweisungen Programm „Visitenkarte.java“ class Visitenkarte { public static void main (String args[]) { System.out.println("********************************"); System.out.println("* *"); System.out.println("* Thomas H. Kolbe *"); System.out.println("* Wissenschaftlicher Assistent *"); System.out.println("* am IKG, Uni Bonn *"); System.out.println("* *"); System.out.println("********************************"); } } T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Struktur von Java-Programmen • Programme bestehen aus Klassen (class) • Klassen bestehen aus Methoden (und Feldern) • Methoden bestehen aus einer Folge von Anweisungen • Genau eine Klasse hat Methode "main" (Hauptprogramm) • Jede Klasse (class-Definition) muss in einer eigenen, gleichnamigen Quelltextdatei definiert werden (.java) • ergo: pro Klasse eine Datei und umgekehrt • Groß-/Kleinschreibung im Quelltext istsignifikant T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Das minimale Java-Programm • besteht aus genau einer Klasse • mit genau der Methode main, die das Hauptprogramm enthält. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Dateiname entsprichtdem Klassennamen(auch bzgl. Groß-/Kleinschreibung) Erläuterung am Programm Rechnen.java Programm „Rechnen.java“: // Programm Rechnen.java // Errechnet 12+32*4 und gibt das Ergebnis aus. // Autor: T. Kolbe classRechnen { public static voidmain (String args[]) { System.out.println("12+32*4 ergibt"); System.out.println(12+32*4); } } Klassendefinition Methoden-definition T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Sprachelemente • Anweisung • einzelner Befehl oder Methodenaufruf • Block • Gruppierung von Befehlen • Ausdruck • Term, der einen Wert besitzt bzw. zurückliefert • Kommentare • Bezeichner • selbst vergebene Namen für Klassen, Variablen etc. • Groß-/Kleinschreibung ist signifikant! T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Wdh.: Kommentare im Programmquelltext • Zur Erhöhung der Lesbarkeit sollten alle Programmteile durch Kommentare näher erläutert werden. • Kommentare werden vom Compiler überlesen • Einzeilige Kommentare • Einleitung durch // • Beendigung durch Zeilenende • Beispiel: // Dies ist ein Kommentar • Längere Kommentare (auch über mehrere Zeilen) • Einleitung mit /* • Beendigung durch */ • Beispiel: /* Dies ist ein Kommentar */ T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Bezeichner • Bezeichner sind vom Programmierer zu vergebene Namen für • Klassen, Methoden, (Pakete) • Variablen • Syntax: Beliebig lange Zeichenfolge aus • Buchstaben inkl. Umlaute • Ziffern • Dem Dollarzeichen $ oder dem Unterstrich _ • Bezeichner müssen mit einem Buchstaben anfangen • Keine Schlüsselwörter • Schlüsselwörter sind reservierte Wörter wie z.B. class, void, true, false, null, ... T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Bezeichner Schlüsselwörter Erläuterung am Programm Rechnen.java Programm „Rechnen.java“: // Programm Rechnen.java // Errechnet 12+32*4 und gibt das Ergebnis aus. // Autor: T. Kolbe classRechnen { public static voidmain (String args[]) { System.out.println("12+32*4 ergibt"); System.out.println(12+32*4); } } 3 Kommentarzeilen T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Anweisungen • Anweisungen werden verwendet • zur Definition von Klassen und Methoden • zur Deklaration von Variablen • zum Aufruf von Methoden (vglb. Prozeduren in C, Pascal) • zum Aufruf eingebauter Befehle: Kontrollstrukturen, Wertzuweisungen zu Variablen, ... • Eine ausgeführte Anweisung gibt i.d.R. keinen Rückgabewert zurück • Jede Anweisung muß im Quelltext mit einem Semikolon (;) abgeschlossen werden T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Blöcke • Ein Block dient zur Gruppierung einer Folge von Anweisungen • Syntax: {Anweisung1; ...Anweisungn;} • Die Anweisungen innerhalb eines Blocks werden nach außen als eine Anweisung betrachtet • Innerhalb eines Blocks werden Anweisungen in der Reihenfolge ausgeführt, in der sie im Quelltext stehen. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Erläuterung am Programm Rechnen.java Programm „Rechnen.java“: // Programm Rechnen.java // Errechnet 12+32*4 und gibt das Ergebnis aus. // Autor: T. Kolbe classRechnen { public static voidmain (String args[]) { System.out.println("12+32*4 ergibt"); System.out.println(12+32*4); } } 1. Block:Klassendefinition 2. Block:Methodendefinition T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Variablen: Deklaration • Variablen sind Platzhalter für Werte • Variablen müssen vor der Verwendung deklariert („angemeldet“) werden. • Variablendeklaration: Typ Variablenbezeichner; • inti; charmy_char;booleanb; doublemeinezahl; • Mehrere Variablen gleichen Typs:Typ V1,...,Vn ; • inti, j, k; charzeichen_a, zeichen_b; T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Ganze Zahlen Komma-zahlen Primitive Datentypen T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Variablen: Wertzuweisung • Wertzuweisung: Variable =Ausdruck; • i=34; j=i+2;b=true; meinezahl=3.1415; • Deklaration und Wertzuweisung in einem Schritt: • int i=34; double meinezahl=3.1412; • Die erste Wertzuweisung zu einer Variablen wird auch als ihre Initialisierung bezeichnet. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Ausdrücke • Alle Operationen, die einen Wert zurückliefern, stellen einen Ausdruck dar • Einfache Ausdrücke sind • konstante Werte, wie z.B. 5 oder 3.14152 oder true • Variablen, wie z.B. t oder meineVariable • Funktionsaufrufe (Methoden, die einen Wert zurückliefern) • Der Wert eines Ausdrucks wird als Rückgabewert bezeichnet • Der Rückgabewert besitzt einen Typ T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Komplexe Ausdrücke • Komplexe Ausdrücke entstehen durch Verknüpfung von Ausdrücken mittels Operatoren • Rekursive Definition: Komplexe Ausdrücke sind ebenfalls wieder Ausdrücke • Runde Klammern beeinflussen die Auswertungsreihenfolge • Beispiele: • 3+4*12 • (3+4)*12 • (2.0 + Math.sin(3.1)) / Math.tan(x – Math.cos(0.85)) T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Operatoren: Stelligkeit • Unäre oder monadische (einstellige) Operatoren • haben einen Operanden x • Syntax: Funktionsaufruf (x) oder Präfix-Darstellung x • Beispiele: Math.sin(x) oder –10 • Binäre oder dyadische (zweistellige)Operatoren • haben zwei Operanden x und y • Syntax: Funktionsaufruf (x,y) oder Infix-Darstellung x y • Beispiele: a+b oder 10 / 2 oder meineFunktion(32, x) • Ternäre oder tryadische (dreistellige) Operatoren • haben drei Operanden x, y und z • Syntax: Funktionsaufruf (x,y,z) T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Arithmetische Ausdrücke • Ist der Rückgabewert eines Ausdrucks vom Typ • byte, short, int oder long (ganzzahlig) oder • float oder double („Kommazahl“), • so wird dieser als arithmetischer Ausdruck bezeichnet. • Die Operanden von arithmetischen Operatoren sollten im Regelfall vom selben Typ sein • Beispiele: 4+2 (int) 5.21 / 1.0 (double) T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Arithmetische Operatoren • +, -, *, / : Addition, Subtraktion, Multiplikation, Division • Division: ganzzahlig, wenn beide Operanden ganzzahlig sind, sonstfloat/double • int i = 9 / 4; //i ist 2double d = 3.6 / 6; //d ist 0.6 • Modulo-Operator %: Rest der Ganzzahldivision • int i = 5;int j = i % 3; // j ist 2 T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Übung im GIS-Labor • Schreiben Sie ein Programm, das den Umfang und den Flächeninhalt eines Kreises mit Radius r (float-Variable) berechnet (pi 3.14159). Die Ausgabe sollte etwa folgendermaßen aussehen: Ein Kreis mit Radius 5.0 hat den Umfang 31.4159 und den Flächeninhalt 78.53975. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Typkonversion • Problemlos (vom kleineren zum größeren):double d;int i = 3;d = i + 7; • Explizit (vom größeren zum kleineren):double d = 3.0;int i;i = (int) (d + 7); Wert_mit_neuem_Typ = (Typname)Wert_mit_altem_Typexplizite Typkonvertierung wird als Casting bezeichnet Primitive Datentypen T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Benutzung von Funktionen der Klasse Math • Die wichtigsten mathematischen Funktionen sind in der Klasse Math definiert. • Die Klasse Math ist Bestandteil der Standard-Funktionsbibliothek java.lang • Zur Benutzung der Funktionen (präziser: Methoden) sind keine besonderen Vorbereitungen notwendig • Aufruf der Funktion f(x) durch Voranstellen von „Math.“ • Beispiel:double a = Math.sin(34.21); • Die Funktionen sind in der Online-Dokumentation von Java (des JDK) erläutert. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Funktionen der Klasse Math (1) • Trigonometrische Funktionen • double sin(double x) Sinus • double cos(double x) Cosinus • double tan(double x) Tangens • double asin(double x) Arcussinus (sin-1) • double acos(double x) Arcuscosinus (cos-1) • double atan(double x) Arcustangens (tan-1) Winkel werden im Bogenmaß angegeben! • Potenzierung, Wurzeln, Logarithmen • double exp(double x) Eulerfunktion ex • double log(double x) natürlicher Logarithmus • double pow(double x, double y) xy • double sqrt(double x) Quadratwurzel T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Funktionen der Klasse Math (2) • Minimum und Maximum • int min(int x, int y) minimum(x,y) • long min(long x, long y) minimum(x,y) • float min(float x, float y) minimum(x,y) • double min(double x, double y) minimum(x,y) • int max(int x, int y) maximum(x,y) • long max(long x, long y) maximum(x,y) • float max(float x, float y) maximum(x,y) • double max(double x, double y) maximum(x,y) • Mathematische Konstanten (Pi, E) • double PIKreiszahl • double E Eulerzahl e T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Funktionen der Klasse Math (3) • Runden und Abschneiden • int abs(int x) | x | • long abs(long x) | x | • float abs(float x) | x | • double abs(double x) | x | • double ceil(double x) x • double floor(double x) x • int round(float x) x+0.5 • Zufallszahlen • double random() 0 Zufallszahl < 1 T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Die Klassen-Dokumentation des JDK • Alle Klassen der Standard-Funktionsbibliothek sind vollständig dokumentiert 3. Aufklappen des Javadoc- Verzeichnisses 1. Anwählen des Edit-Tabs • Dokumentation ist abrufbar über Forté: 4. Öffnen des Browsers durch Doppelklick aufindex 2. Anwählen des Javadoc-Tabs T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Klassen-Dokumentation in Forté (1) Klassen-Dokumentation T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Klassen-Dokumentation in Forté (2) Alle Klassen der Java-Standard-Bibliothek Erläuterungen T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Boolesche Ausdrücke • Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet(nach dem Mathematiker George Boole). • Boolesche Ausdrücke können nur die zwei (Wahrheits-)Werte true oder false annehmen. T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Komplexe Boolesche Ausdrücke Komplexe Boolesche Ausdrücke werden mit den Mitteln der Aussagenlogik gebildet: • Nicht / Negation:¬ true = false¬ false = trueNegation in Java: ! Wert • Und-Verknüpfung: false false = false false true = false true false = false true true = trueUnd-Verknüpfung in Java: Wert1 & Wert2 • Oder-Verknüpfung: false false = false false true = true true false = true true true = trueOder-Verknüpfung in Java: Wert1 | Wert2 T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Relationale Operatoren • Relationale Operatoren setzen ihre Operanden zueinander in Beziehung und liefern den Wahrheitswert der Beziehung zurück. • Beispiele: 5 < 3 ergibt false(4-2)=2 ergibt true T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Operatorenreihenfolge (Priorität) T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02
Übungsaufgaben 1. Simulation eines Würfels: Schreiben Sie ein Programm, das bei jedem Aufruf eine zufällige ganze Zahl zwischen 1 und 6 ausgibt. 2. Logische Ausdrücke a) true & false | true b) (10>2) & (!true==false) c) true==(4!=3) & !(3<=3) 1. Notieren Sie die Ausdrücke 1.-3. in mathematischer Schreibweise; z.B.: ¬ true (32 true) 2. Wie lauten die Wahrheitswerte der Ausdrücke 1.-3. ? T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/02