Java-Vorlesung2

Werbung
Institut für Kartographie und Geoinformation
Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag
Einführung in die
Programmierung mit Java
2. Vorlesung WS 2003/2004
22.10.2003
Termine
•
•
•
•
Vorlesung Mittwochs 14:15 - 15 HS VIII
Übung Gruppe A: Mittwochs 15:05 - 15:50 GIS-Labor
Übung Gruppe B: Mittwochs 15:55 - 16:40 GIS-Labor
Wechsel der Gruppen nach dem 26.11.03
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
2
Abgabe der Hausaufgaben
• werden die Hausaufgaben bis Montag, 14 Uhr,
abgegeben, erhaltet Ihr sie bis Mittwoch zurück
• sonst erst am Mittwoch in der nächsten Woche
• richtige Aufgaben werden nicht zurückgegeben, nur
falsche (natürlich korrigiert)
• nur .java-Datei abgeben
• Dateiname = Klassenname = Nachname
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
3
Hausaufgabe vom 15. 10.
• Ausgabe einer Visitenkarte auf dem Bildschirm
z.B.:
***********************************
*
*
* Ingo Petzold
*
* Wissenschaftlicher Mitarbeiter *
* am IKG, Uni Bonn
*
*
*
***********************************
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
4
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("*********************************");
}
}
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
5
Übersicht
• Struktur von Java-Programmen
– Aufbau eines Java-Programms
– Sprachelemente
• Variablen und primitive Datentypen
– Wertzuweisung
• Ausdrücke und Operatoren
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
6
Struktur von Java-Programmen
• Programme bestehen aus Klassen (class)
• im Beispiel: nur eine Klasse Groß-/Kleinschreibung
"Visitenkarte"
• Klassen bestehen aus Methodenrelevant!
z.B. Visitenkarte
 visitenkarte
• 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
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
7
Erläuterung am Programm Rechnen.java
Programm „Rechnen.java“:
Kommentar
// Programm Rechnen.java
Dateiname entspricht
// Errechnet 12+32*4 und gibt es aus.
dem Klassennamen
// Autor: T. Kolbe
(auch bzgl. Groß-/
Kleinschreibung)
class Rechnen {
public static void main (String args[]) {
System.out.println("12+32*4 ergibt");
System.out.println(12+32*4);
}
}
Klasse
Rumpf der
Methode mit 2
Anweisungen
Methode
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
8
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 */
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
9
Beispielprogramm mit Kommentaren
Programm Rechnen.java
Ausgabe:
// Programm zur Berechnung von 14+12*3
50
class Rechnen { // Ein einzeiliger Kommentar
public static void main (String args[]) {
System.out.println(14+12*3);
}
hier
}
/* Hier beginnt ein Kommentar,
der sich über mehrere Zeilen
erstrecken kann */
steht eine
Formel, die
ausgerechnet wird
(statt Text wie bisher)
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
10
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.
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
11
Anweisungen
• Methodenaufrufe
z.B. System.out.println(„Hallo Welt“);
• Variablendeklarationen (z.B. int x;)
• Wertzuweisungen (z.B. x = 5;)
• .....
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
12
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 auf
nächster Folie => „Bezeichner“)
• Name der Variablen soll Bedeutung widerspiegeln
(Erhöht Lesbarkeit des Programms)
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
13
Bezeichner
• Bezeichner sind vom Programmierer zu vergebene
Namen für
– Klassen, Methoden, (Pakete)
– Variablen
• Syntax: Beliebig lange Zeichenfolge aus
– Buchstaben (Umlaute, ß, usw. sollte man vermeiden....)
– 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, ...
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
14
Erläuterung am Programm Rechnen.java
Programm „Rechnen.java“:
3 Kommentarzeilen
// Programm Rechnen.java
// Errechnet 12+32*4 und gibt das Ergebnis aus.
// Autor: T. Kolbe
Bezeichner
class Rechnen {
public static void main (String args[]) {
System.out.println("12+32*4 ergibt");
System.out.println(12+32*4);
}
}
Schlüsselwörter
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
15
Variablen: Deklaration
• für Variablen muss angegeben werden, von welchem Typ (z. B.
ganze Zahl, Kommazahl, Buchstabe) 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
• Welche Typen gibt es?
Primitive Datentypen, später kommen auch nicht primitive
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
16
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) Komma-
Ganze Zahlen
zahlen
double
64 Bits
+/- 1.8E+308 (17 Stellen genau)
char
16 Bits
65536 verschiedene Zeichen Buchstabe
boolean
1 Bit
true oder false
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
17
Alternative: Deklaration mehrerer Variablen gleichen
Typs zugleich
• Deklaration mehrere Variablen gleichen Typs in einem Schritt
(Variablen V durch Komma getrennt):
Typ V1,...,Vn ;
• Beispiele:
• int i, j, k; ist dasselbe wie
int i;
int j;
int k;
• char zeichen_a, zeichen_b;
ist dasselbe wie
char zeichen_a;
char zeichen_b;
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
18
Variablen: Wertzuweisung
• Wertzuweisung: Variable = Ausdruck;
• Beispiele:
i = 34;
meinezahl = 3.1415;
j = i+2;
• Beides muss zueinander passen
• 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.
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
19
Ausdrücke
• Ausdruck: Operation, die einen Wert zurückliefert
• Ausdruck steht auf der rechten Seite einer Wertzuweisung
• Beispiele:
•
•
•
•
•
8
3-7
i
1+i
sin(90)
liefert Wert 8
liefert Wert -4
liefert Wert der Variablen i (i muss Wert haben)
liefert Summe von 1 und dem Wert der Variablen i
liefert Sinus des Winkels 90 Grad
• Der Wert eines Ausdrucks wird als Rückgabewert bezeichnet
• Der Rückgabewert besitzt einen Typ, den Rückgabetyp
– z.B. double bei sin(90), int bei 3 - 7
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
20
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 '(', ')'
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
21
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)
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
22
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
5.21 / 1.0
(int)
(double)
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
23
Arithmetische Operatoren
• +, -, *, / : Addition, Subtraktion, Multiplikation, Division
• Division: ganzzahlig, wenn beide Operanden ganzzahlig sind,
sonst float/double
int i = 9 / 4;
double d = 3.6 / 6;
//i ist 2
//d ist 0.6
• Modulo-Operator %: Rest der Ganzzahldivision
int i = 5;
int j = i % 3;
// j ist 2
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
24
Arithmetische Operatoren: Vorsicht!
• Division: ganzzahlig, wenn beide Operanden ganzzahlig sind,
sonst float/double
• Beispiel:
int a = 7;
int b = 2;
double ergebnis = a / b;
System.out.println(ergebnis);
Was wird für ergebnis ausgegeben?
ergebnis = 3.0
• Beispiel:
int a = 7;
double b = 2;
double ergebnis = a / b;
System.out.println(ergebnis);
ergebnis = 3.5
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
25
Übung I im GIS-Labor
• Schreiben Sie ein Programm, das den Umfang und
den Flächeninhalt eines Kreises mit Radius r (floatVariable) 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.
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
26
Übung II im GIS-Labor
• Sie haben eine Summe von 18432 Euro gespart, die
Sie anlegen möchten. Rechnen Sie aus, wie viel
Geld Sie bei einem jährlichen Zinssatz von 2,7% am
Ende des ersten, zweiten, dritten, vierten und fünften
Jahres insgesamt zur Verfügung haben. Geben Sie
für jedes Jahr den entsprechenden Betrag aus.
• Wie sind die Ergebnisse bei einer Anlagesumme von
15158 EUR und einem jährlichen Zinssatz von 3,1%?
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
27
Hausaufgabe:
Temperaturumrechnung
Schreiben 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)
G. Gröger - Einführung in die Programmierung mit Java - WS 03/04
28
Herunterladen