Top Banner
Vorkurs: Java-Einf¨ uhrung Dr. Hui Shi 10. Oktober 2019 1
35

Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Sep 09, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Vorkurs: Java-Einfuhrung

Dr. Hui Shi

10. Oktober 2019

1

Page 2: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Uberblick

1 Von Algorithmen zu ProgrammenIntuitiver AlgorithmusbegriffBeispiele von AlgorithmenBausteine der Programmiersprache Java

2 Grundlegende Konzepte der Programmiersprache JavaSyntax und SemantikProgrammiersprache JavaDatentypen in Java und APISteuerungs-Anweisungen in Java

2

Page 3: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Termine

Termin Datum Zeit Raum

T1 10.10. 8:30-10:00 MZH 1090 Plenum

T2 10.10. 10:00-12:00 MZH P1 (Windows) Ubung

T3 10.10. 12:30-14:00 MZH P1 (Windows) Plenum

T4 11.10. 8:30-10 MZH P1 (Windows) Ubung

T5 11.10. 10-12 MZH P1 (Windows) Ubung

3

Page 4: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Von Algorithmen zu Programmen

4

Page 5: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Inhalt

Intuitiver Algorithmusbegriff

Beispiele fur Algorithmen

Bausteine der Programmiersprache Java

5

Page 6: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Intuitiver Algorithmusbegriff

Algorithmen sind Vorschriften zur Ausfuhrung einer Tatigkeit.Beispiele sind Bedienungsanleitungen, Bauanleitungen, Kochrezepte

Definition (Informatik)Ein Algorithmus ist eine prazise (d.h. in einer festgelegten Spracheabgefasste) endliche Beschreibung eines allgemeinen Verfahrens unterVerwendung ausfuhrbarer elementarer Verarbeitungsschritte.

6

Page 7: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Primzahl-Test

Test, ob eine gegebene naturliche Zahl eine Primzahl istDefinition: Eine Primzahl ist eine naturliche Zahl mit genau zweiverschiedenen naturlichen Teilern, namlich 1 und sich selbst.

Naturliche Zahlen (Bsp.) Primzahl?

1

2

31

1029

1031

7

Page 8: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Ein Algorithmus

1 Sei x eine naturliche Zahl, b eine Variable vom Wert wahr oder falsch.

2 Initialisiere b mit wahr.

3 Falls x kleiner als 2, dann weise b false zu. Gehe zu 5.4 Sonst

Sei i eine Variable von naturlicher Zahlen.Initialisiere i mit 2.Solange i kleiner als x ist, fuhre Schritte i und ii aus.

1 Falls x durch i teilbar ist, weise b false zu. Gehe zu 5.2 Sonst erhohe i um 1.

5 Falls b falsch ist, ist x keine Primzahl, sonst ist x eine Primzahl.

8

Page 9: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Ein Java-Programm: PrimeTest

p u b l i c c l a s s Pr imeTest{

p u b l i c v o i d i s P r i m e ( i n t x ){ b o o l e a n b = t r u e ;

i f ( x<2){ b = f a l s e ;} e l s e {

i n t i = 2 ;w h i l e ( i<x ){ i f ( x%i ==0)

{ b = f a l s e ;b r e a k ;

} e l s e { i = i + 1 ;}}

}i f ( ! b ){ System . out . p r i n t l n ( x + ” i s not a pr ime number . ” ) ;} e l s e {System . out . p r i n t l n ( x + ” i s a pr ime number . ” ) ; }

}}

9

Page 10: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Bausteine der Programmiersprache Java

Typen, z.B.int: naturliche Zahlboolean: Wahrheitswert

Variablen, z.B., x , b und i

Konstanten, z.B., 1, 2, true und falseOperationen, z.B.

<: kleiner als, x < 2 und i < x+: Plus, i + 1%: Restberechnung, x%i==: Vergleich, x%i == 0

Deklarationen, z.B., int : x , i und boolean : bAnweisungen, z.B.

=: Zuweisung, b = true, b = false, i = 2 und i = i + 1while: solang, while (i < x)if-else: falls-sonst, if ((x%i) == 0) · · · else · · · , if (!b) · · · else · · ·break: hier fur gehe zuSystem.out.println: hier fur die Ausgabe des Ergebnisses

10

Page 11: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Binarsystem

Berechnung der binaren Darstellung einer dezimalen Zahl

Dezimale Zahl Binare Darstellung (Bsp. 8-Bit)

10

-10

123

-123

11

Page 12: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Binarsystem

Berechnung der dezimalen Darstellung einer binaren Zahl

Binare Zahl (Bsp. 8-Bit) Dezimale Darstellung

00000000

00000001

00000010

01111111

11110000

12

Page 13: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Ubung

ueb1.pdf

13

Page 14: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Grundlegende Konzepteder Programmiersprache Java

14

Page 15: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Inhalt

Syntax und Semantik

Programmiersprache Java

Primitive Typen in Java

Zeichenfolgen: String

Bibliotheken und API

Steuerungs-Anweisungen in Java

15

Page 16: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Syntax und Semantik

Syntax

Die Syntax gibt formale Regeln vor, welche Satzmuster gebildet werdenkonnen.BeispielDie Kinder spielen mit dem Ball. (syntaktisch korrekt)Die Kinder spielen dem Ball mit. (syntaktisch falsch)

Semantik

Die Semantik legt die Bedeutung fest.BeispielDie Kinder spielen mit dem Ball. (semantisch korrekt, sinnhaft)Der Ball spielt mit den Kindern. (semantisch falsch, sinnlos)

16

Page 17: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Programmiersprache Java

Ausdrucksmittel zur Formulierung von Algorithmen

Kommunikation zwischen Menschen und Maschinenverstandlich fur Menschen und verarbeitbar fur Maschinen

Generationen

maschinenorientierte Sprachen (assembler)prozedurale Sprachen (imperative Sprachen)objektorientierte Sprachen

Java: eine objektorientierte Programmiersprache

17

Page 18: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Erstes Java-Programm

/∗∗∗ Bes ch r e i b en S i e h i e r d i e K l a s s e He l loWor ld .∗∗ @author Sh i∗ @ve r s i on 12 .10 . 2017∗/

p u b l i c c l a s s H e l l o W o r l d{

p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {System . out . p r i n t l n ( ” H e l l o , World ” ) ;

}}

Java-Programmierung mit BlueJ

HelloWorld.class

Editor

HelloWorld.java

Klasseerzeugen

Projekterstellen

Programmkompilieren

programmausführen

Compiler JVM

"Hello, World"18

Page 19: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Einige Java-StandardbegriffeKlasse: HelloWorldHauptmethode: public static void main(String args[])Anweisung: System.out.println(“Hello, World”)

Programme mit Parametern

/∗∗∗ Bes ch r e i b en S i e h i e r d i e K l a s s e He l l o .∗∗ @author Sh i∗ @ve r s i on 12 .10 . 2017∗/

p u b l i c c l a s s H e l l o{

p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) {S t r i n g t i t l e = a r g s [ 0 ] ;S t r i n g nachname = a r g s [ 1 ] ;S t r i n g vorname = a r g s [ 2 ] ;System . out . p r i n t l n ( ” H e l l o , ” + t i t l e + ” ” + vorname + ” ”+ nachname ) ;

}}

Ausfuhrung: {“Mr.”, “Mustermann”, “Max”}Ubung: Ein BlueJ-Projekt fur das Hello-Programm erstellen,ubersetzten und ausfuhren.

19

Page 20: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Datentypen in Java

Datentypen legen die zu bearbeitenden Informationseinheiten fest. EinDatentyp hat einen Wertebereich und einen dazugehorigen Satz anOperationen.

Es gibt zwei Arten von Datentypen in Java: primitive Typen undReferenztypen oder Klassen.

20

Page 21: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Primitive Datentypen

Die primitive Datentypen sind die in der Sprache “eingebauten”Typen zur Speicherung von Werten

Numerische Typen fur Ganzzahlen, z.B. int

Numerische Typen fur Gleitkommazahlen, z.B. double

Zeichen-Datentyp: char

boolescher Datentyp: boolean

Beispiele primitiver Datentypen in Java

Datentyp Werte (Bsp.) Operation (Bsp.)

int 3, 0, -24 +, -, *, /, <, >, ==

double 345.7, 3.14 +, -, *, /, <, >, ==

char ’a’, ’c’, ’1’ <, >, ==

boolean true, false ==, !=, &&, ||, !

21

Page 22: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Einige weitere Java-Standardbegriffe

Literale/Werte: 1234, 99.0f, “Hallo“Variablen: a, b, cAusdruck: a + bDeklaration: int a, bZuweisungen: a = 1234; b = 99Deklaration mit Initialisierung: int c = a + b

22

Page 23: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Zweites Java-Programm

c l a s s Bas icTypes {p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) {

i n t a , b ;a = 1 2 3 4 ;b = 9 9 ;i n t c = a + b ;System . out . p r i n t l n ( ” c = ” + c ) ;

}}

23

Page 24: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Zeichenfolgen: String

String ist ein Beispiel-Referenztyp

Beispiel: “Hello, World”Konkatenationsoperator “+” hangt Zeichenketten aneinander:“Hello, “ + “Shi”, “c = “ + c

Gleichheit von Zeichenfolgen

“==” vergleicht die Referenzen zweier Zeichenfolgens1 = “1234”;s2 = s1;

s1 == s2 ?

“equals(String s)” vergleicht die Inhalte zweier Zeichenfolgens1 = “1234”;s3 = “”; s3 = s3 + “1234”;s1 == s3 ?

s3.equals(s1) ?

24

Page 25: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Zeichenfolgen: String (Beispiel)

Der Operator == vergleicht nur Referenzen (Identitat).

Die Methode equals vergleicht das Objekt (Gleichheit).

Beispiel:

c l a s s S t r i n g E q {p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {

S t r i n g a = ”So g e h t s ” ,b = ”So” ,c = a ;b = b + ” g e h t s ” ;System . out . p r i n t l n ( ”a , c == −> ” + ( a==c ) ) ;System . out . p r i n t l n ( ”a , b == −> ” + ( a==b ) ) ;System . out . p r i n t l n ( ”a , b e q u a l s −> ” + a . e q u a l s ( b ) ) ;System . out . p r i n t l n ( ”a , c e q u a l s −> ” + a . e q u a l s ( c ) ) ;

} }

Welche Ausgaben liefert das Programm?

25

Page 26: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Java ist eine stark typisierte Programmiersprache.

Der Typ jeder Variable und jedes Ausdrucks istin der Ubersetzungszeit bekannt.Der Typ einer Variable beschrankt die Werte,die die Variable speichern darf.Der Typ eines Ausdrucks beschrankt den Wert,den der Ausdruck produzieren darf.Typen beschranken auch die Operationen undderen Bedeutungen in Ausdrucken.

26

Page 27: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

API – Bibliotheken

API – Applications Programming Interface

Klassen, deren Attribute und Methoden primar dafur gedacht sind, inanderen Programmen eingesetzt zu werden.

Web-Adresse: API Dokumentation unterhttp://download.oracle.com/javase/

Java-APIs sind durch Pakete organisiert, z.B. “java.lang”, “java.io”

Beispiel-Klassen in java.lang und java.io

Klasse “PrintStream”public void println(String x)

Klasse “Integer”public static int parseInt(String s, int radix) throws NumberFormatException

Klasse “Math”public static final double PI

Klasse “Object”boolean equals(Object o)

27

Page 28: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Anwendungsbeispiele

System.out.println(“Hello, World”)Integer.parseInt(args[0])Double.parseDouble(args[0])s3.equals(s1)Math.PI

28

Page 29: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Steuerungs-Anweisungen in Java

Sequenzielle AusfuhrungDie zeitliche Abfolge von SchrittenBeenden von Anweisungen durch “;”Beispiel: Zubereitung einer Tasse gruner Tee

/∗∗∗ A tea r e c i p e .∗ @author Sh i @ve r s i o n 1 .0∗/

p u b l i c c l a s s GreenTea {p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) {

S t r i n g step1 , s tep2 , s tep3 , s tep4 , r e c i p e ;s t e p 1 = ”Koche Wasser ” ;s t e p 2 = ” Gib e i n e n h a l b e n TL Tee i n e i n e Tasse ” ;s t e p 3 = ”Warte , b i s das Wasser a u f 80 Grad a b g e k u e h l t i s t ” ;s t e p 4 = ” G i e s s e das Wasser i n d i e Tasse ” ;r e c i p e = s t e p 1+” ;\ n” + s t e p 2+” ;\ n” + s t e p 3+” ;\ n” + s t e p 4 ;System . out . p r i n t l n ( r e c i p e ) ;

} }

29

Page 30: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Bedingte AusfuhrungenAuswahl von Schritten aufgrund einer zu testenden BedingungVariante 1 Variante 2if (condition) { if (condition) {

step(s) step1(s)} } else {

step2(s)}

Flussdiagramme

condition

step(s)

neinja neinjacondition

step2(s)step1(s)

Beispiele

y = x; if (x<0) {if (x<0) { y = -x;

y = -x; } else {} y = x;

}30

Page 31: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Schleifen: Wiederholung von Schritten aufgrund einer zu testendenBedingung

for-SchleifenSyntax

for (init; condition; update) {step(s)

}Begriffe

Initialisierung von SchleifenvariablenBoolscher Ausdruck als Bedingung, oder SchleifenabbruchbedingungInkrementierung von SchleifenvariablenSchleifenrumpf

Beispiel

z = 0;for (i=0; i<10; i++) {

z = z + i;}

31

Page 32: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

while-SchleifenSyntax

while (condition) {step(s)

}Beispiel

z = 0; i = 0;while (i<10) {

z = z + i; i = i + 1;}Flussdiagramm

ja

neincondition

step(s)

32

Page 33: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

do-while-SchleifenSyntax

do {step(s)

} while (condition);

Beispiel

z = 0; i = 0;do {

z = z + i; i = i + 1;} while (i<10);

Flussdiagramm

step(s)

condition

neinja

33

Page 34: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Diskussion

Verschachtelte if-Anweisungen

if (cond1) if (cond2) step1 else step2if (cond1) {if (cond2) step1} else step2

Was ist der Unterschied zwischen ++i, i++ und i = i+1?

Gibt es Falle, in denen eine for-Schleife statt einer while-Schleife(beziehungsweise umgekehrt) verwendet werden muss?

Was ist der Unterschied zwischen while- und do-while-Schleife?

34

Page 35: Vorkurs: Java-Einf uhrung - Uni Bremenshi/Lehre/eso/eso_handout.pdf · Uberblick 1 Organisatoriches 2 Von Algorithmen zu Programmen Intuitiver Algorithmusbegri Beispiele von Algorithmen

Ubung

ueb2.pdf

35