25
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003 30.10.2002

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

Embed Size (px)

Citation preview

Page 1: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

Institut für Kartographie und GeoinformationProf. Dr. Lutz Plümer, Dr. Gerhard Gröger

Einführung in die Programmierung mit Java

2. Vorlesung WS 2002/2003

30.10.2002

Page 2: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

2 2

Termine

• Übung GIS I– Mittwochs von 9:05 - 9:50 Uhr

• Übung Diskrete Mathe– Gruppe A: Donnerstags von 13:15 - 14:00 Uhr– Gruppe B: Donnerstags von 14:00 - 14:45 Uhr– ab morgen (31.10.)

• Vorlesung Java– Mittwochs von 13:15 - 14:45 Uhr– Terminänderung ab nächster Woche (6.11.), d.h. morgen ab

14:15 Uhr

Page 3: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

3 3

Übersicht

• Besprechung der Übungsaufgabe

• Struktur von Java-Programmen– Aufbau eines Java-Programms

– Sprachelemente

• Variablen und primitive Datentypen– Wertzuweisung

• Ausdrücke und Operatoren

Page 4: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

4 4

Übungsaufgabe vom 23. 10.

• Ausgabe einer Visitenkarte auf dem Bildschirmz.B.:

*********************************** * * * Ingo Petzold * * Wissenschaftlicher Mitarbeiter * * am IKG, Uni Bonn * * * ***********************************

Page 5: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

5 5

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("* Ingo Petzold *"); System.out.println("* Wissenschaftlicher Mitarbeiter*"); System.out.println("* am IKG, Uni Bonn *"); System.out.println("* *"); System.out.println("*********************************");}

}

Page 6: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

6 6

Struktur von Java-Programmen

• Programme bestehen aus Klassen (class)• im Beispiel: nur eine Klasse "Visitenkarte"

• Klassen bestehen aus Methoden • im Beispiel: nur eine Methode „main“

• Methoden bestehen aus einer Folge von Anweisungen, getrennt durch Semikolon• im Beispiel: System.out.println(...);

• Genau eine Klasse hat Methode "main" (Hauptprogramm)

• Jede Klasse muss in einer eigenen, gleichnamigen Quelltextdatei definiert werden (.java)ergo: pro Klasse eine Datei und umgekehrt

Groß-/Kleinschreibung relevant!

z.B. Visitenkarte visitenkarte

Groß-/Kleinschreibung relevant!

z.B. Visitenkarte visitenkarte

Page 7: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

7 7

Erläuterung am Programm Rechnen.java

KommentarKommentar

KlasseKlasse

Rumpf der Methode mit 2 Anweisungen

Rumpf der Methode mit 2 Anweisungen

MethodeMethode

Programm „Rechnen.java“:

// Programm Rechnen.java

// Errechnet 12+32*4 und gibt es aus.

// Autor: T. Kolbe

class Rechnen {

public static void main (String args[]) {

System.out.println("12+32*4 ergibt");

System.out.println(12+32*4);

}

}

Dateiname entsprichtdem Klassennamen(auch bzgl. Groß-/Kleinschreibung)

Dateiname entsprichtdem Klassennamen(auch bzgl. Groß-/Kleinschreibung)

Page 8: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

8 8

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 */

Page 9: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

9 9

Einfache Java-Programme

• bestehen aus genau einer Klasse

• mit einer Methode main, die das Hauptprogramm enthält.

• Die Methode main besteht aus einer Folge von Befehlen (Anweisungen), getrennt durch Semikolon.

Page 10: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

10 10

Anweisungen

• Methodenaufrufe z.B. System.out.println(„Hallo Welt“);

• Variablendeklarationen• Wertzuweisungen• .....

Page 11: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

11 11

Variablen

• Variablen sind Platzhalter für Werte

• Variablen dienen z.B. zur

• Aufnahme von Werten, die von vorne herein nicht bekannt sind

• Aufnahme von Ergebnissen von Berechnungen

• Name der Variable frei wählbar (Einschränkungen später => „Bezeichner“)

• Name der Variablen soll Bedeutung widerspiegeln (Erhöht Lesbarkeit des Programms)

Page 12: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

12 12

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 Leerzeichen

• Keine Schlüsselwörter– Schlüsselwörter sind reservierte Wörter wie z.B. class, static,

void, true, false, null, ...

Page 13: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

13 13

Erläuterung am Programm Rechnen.java

Programm „Rechnen.java“:

// Programm Rechnen.java

// Errechnet 12+32*4 und gibt das Ergebnis aus.

// Autor: T. Kolbe

class Rechnen {

public static void main (String args[]) {

System.out.println("12+32*4 ergibt");

System.out.println(12+32*4);

}

}

3 Kommentarzeilen3 Kommentarzeilen

BezeichnerBezeichner

SchlüsselwörterSchlüsselwörter

Page 14: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

14 14

Variablen: Deklaration

• für Variablen muss angegeben werden, von welchem Typ (z. B. ganze Zahl, Kommazahl, Buchstaben) sie sind

• dies wird als Deklaration bezeichnet

• Variablendeklaration: Typ Variablenbezeichner;

Beispiele:int anzahl; // Variable anzahl ist eine ganze Zahl

char Endbuchstabe; // Variable Endbuchstabe ist ein Buchstabe

double Winkel; // Variable Winkel ist eine Kommazahl

Page 15: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

15 15

Primitive Datentypen

Typ Länge Bereich

byte 8 Bits -128 bis 127

short 16 Bits -32768 bis 32767

int 32 Bits -2147483648 bis 2147483647

long 64 Bits noch viel größer als int

float 32 Bits +/- 3.4E+38 (8 Stellen genau)

double 64 Bits +/- 1.8E+308 (17 Stellen genau)

char 16 Bits 65536 verschiedene Zeichen

boolean 1 Bit true oder false

Ganze Zahlen

Komma-zahlen

Page 16: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

16 16

Alternative: Deklaration mehrerer Variablen gleichen Typs

• Deklaration mehrere Variablen gleichen Typs in einem Schritt (Variablen V durch Komma getrennt): Typ V1,...,Vn ;

• Beispiele:

• int i, j, k;ist dasselbe wie

• char zeichen_a, zeichen_b;ist dasselbe wiechar zeichen_a;char zeichen_b;

int i;int j; int k;

Page 17: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

17 17

Variablen: Wertzuweisung

• Wertzuweisung: Variable = Ausdruck;

• Beispiele:

i = 34; j = i+2;meinezahl = 3.1415;

• Deklaration und Wertzuweisung in einem Schritt:

int i = 34+j; double meinezahl = 3.1412;

• Die erste Wertzuweisung zu einer Variablen wird auch als ihre Initialisierung bezeichnet.

Page 18: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

18 18

Ausdrücke

• Ausdruck: Operation, die einen Wert zurückliefert• Beispiele:

• 8 liefert Wert 8• 3 - 7 liefert Wert -4• i liefert Wert der Variablen i (i muss Wert haben)• 1 + i liefert Summe von 1 und dem Wert der Variablen i• sin(90) liefert Sinus des Winkels 90 Grad

• Der Wert eines Ausdrucks wird als Rückgabewert bezeichnet

• Der Rückgabewert besitzt einen Typ

– z.B. double bei sin(90), int bei 3 - 7

Page 19: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

19 19

Einfache und komplexe Ausdrücke

• Einfache Ausdrücke sind Konstanten (z.B. 3.9), Variablen oder Funktionsaufrufe

• Komplexe Ausdrücke entstehen durch Verknüpfung von Ausdrücken mittels Operatoren (+,-,*,sin, ...)– Komplexe Ausdrücke sind ebenfalls wieder Ausdrücke (Rekursion)

• Beispiele für komplexe Ausdrücke:– 3+4*i //i ist Variable– (3+4)*12– (2.0 + Math.sin(3.1)) / Math.tan(x – Math.cos(0.85))

• Reihenfolge der Auswertung durch Klammern '(', ')'

Page 20: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

20 20

Operatoren: Stelligkeit

• Einstellige (unäre) Operatoren f– haben einen Operanden x– Syntax: Funktionsaufruf f(x) oder Präfix-Darstellung f x– Beispiele: Math.sin(x) oder –10

• Zweistellige (binäre) Operatoren f– haben zwei Operanden x und y– Syntax: Funktionsaufruf f(x,y) oder Infix-Darstellung x f y– Beispiele: a+b oder 10 / 2 oder meineFunktion(32, x)

• Dreistellige (ternäre) Operatoren f– haben drei Operanden x, y und z– Syntax: Funktionsaufruf f (x,y,z)

Page 21: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

21 21

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)

Page 22: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

22 22

Arithmetische Operatoren

• +, -, *, / : Addition, Subtraktion, Multiplikation, Division

• Division: ganzzahlig, wenn beide Operanden ganzzahlig sind,

sonst float/double

int i = 9 / 4; //i ist 2

double d = 3.6 / 6; //d ist 0.6

• Modulo-Operator %: Rest der Ganzzahldivision

int i = 5;

int j = i % 3; // j ist 2

Page 23: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

23 23

Ü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.

Page 24: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

24 24

Hausaufgabe:

TemperaturumrechnungSchreiben Sie ein Programm, das eine Temperatur in Grad Celsius in Grad Fahrenheit umrechnet, das Ergebnis in einer Variablen speichert und ausgibt. Analog soll von Fahrenheit nach Celsius umgerechnet werden.

Tip: Formel zur Umrechnung von Fahrenheit nach Celsius:

Celsius = 5/9 * (Fahrenheit - 32)

Page 25: Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 2. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - WS 02/03 G. Gröger - Einführung in die Programmierung mit Java - WS 02/03

25 25

Hausaufgaben

• Wie beim Kochen: – Übung macht den Meister

• Bearbeitung der Hausaufgaben:– pro abgegebener Lösung max. zwei Personen – Abgabe bis spätestens zum Anfang der nächsten

Veranstaltung• Alle Lösungen bitte in Papierform und bei Programmen

zusätzlich per Email (als Attached Documents) an [email protected]; Dateiname = Nachname(n)

• Einwurf der Ausarbeitungen in den weißen Briefkasten im Erdgeschoss, neben dem Ausgang zum Hof

• Probieren geht über Studieren!