22
1 Oct 3, 2005 IT2 – WS 2005/2006 IT II WS 2005/2006 Peter Auer

IT II WS 2005/2006

  • Upload
    declan

  • View
    29

  • Download
    4

Embed Size (px)

DESCRIPTION

IT II WS 2005/2006. Peter Auer. Inhalt. Objektorientierte Programmierung (in Java) David J. Barnes & Michael Kölling Objektorientierte Programmierung mit Java Eine praxisnahe Einf üh rung mit BlueJ Pearson Studium, 2003 ISBN 3-8273-7073-6. - PowerPoint PPT Presentation

Citation preview

Page 1: IT II WS 2005/2006

1Oct 3, 2005IT2 – WS 2005/2006

IT II

WS 2005/2006

Peter Auer

Page 2: IT II WS 2005/2006

2Oct 3, 2005IT2 – WS 2005/2006

Inhalt

Objektorientierte Programmierung (in Java)• David J. Barnes & Michael Kölling

Objektorientierte Programmierung mit JavaEine praxisnahe Einführung mit BlueJPearson Studium, 2003ISBN 3-8273-7073-6.

Grundprinzipien der (objektorientierten) Programmierung

Algorithmen und Datenstrukturen

Page 3: IT II WS 2005/2006

3Oct 3, 2005IT2 – WS 2005/2006

Objekte und Klassen

Objekte• repräsentieren ‘Dinge’ der realen Welt oder

eines Problembereichs.• Beispiel: „maxMayer ist zur itUE angemeldet.“

Klasse• beschreibt eine bestimmte Art von Objekten. • Beispiel: „Student” und „Laborkurs“• Objekte repräsentieren individuelle Instanzen

einer Klasse.• Von einer Klasse können mehrere Instanzen

(instances) erzeugt werden.

Page 4: IT II WS 2005/2006

4Oct 3, 2005IT2 – WS 2005/2006

Methoden und Parameter

Objekte haben Operationen, die aufgerufen werden können (Java: Methoden).

Methoden können Parameter haben, durch die zusätzliche Information übertragen werden kann.

Parameter haben Typen, die angeben welche Art von Werten ein Parameter annehmen kann.

Methoden können einen Ergebniswert zurückliefern.

Page 5: IT II WS 2005/2006

5Oct 3, 2005IT2 – WS 2005/2006

Demo mit BlueJ

Page 6: IT II WS 2005/2006

6Oct 3, 2005IT2 – WS 2005/2006

Basiskonzepte

Objekt (object) Klasse (class) Methode (method) Parameter (parameter) Datentyp (data type)

Page 7: IT II WS 2005/2006

7Oct 3, 2005IT2 – WS 2005/2006

Weitere Beobachtungen

Ein Objekt hat Attribute (attributes): Werte gehalten in Datenfelder.

Die Klasse definiert, welche Attribute ein Objekt besitzt, aber jedes Objekt hat seine eigenen Attributwerte (= Zustand des Objektes).

Page 8: IT II WS 2005/2006

8Oct 3, 2005IT2 – WS 2005/2006

Klassendefinitionen verstehen

Quelltext anschauen

1.0

Page 9: IT II WS 2005/2006

9Oct 3, 2005IT2 – WS 2005/2006

Notation von (Programmier-)Sprachen

Syntax• Wie sieht ein Programm aus, das der

Computer versteht?• Fehler in der Syntax sind die einfachere Art

von Programmierfehlern: Der Computer kann das Programm nicht ausführen.

Semantik• Was bewirkt das Programm?• Fehler in der Semantik sind oft schwieriger zu

finden: Der Computer versteht das Programm anders als es gemeint war.

Page 10: IT II WS 2005/2006

10Oct 3, 2005IT2 – WS 2005/2006

Notation für die Syntax 1

programmteil1 ::=programmteil2programmteil3…

• programmteil1 besteht aus programmteil2, gefolgt von programmteil3, …

{ programmteil4 }• programmteil4 wird beliebig oft wiederholt

(auch 0-mal).

Page 11: IT II WS 2005/2006

11Oct 3, 2005IT2 – WS 2005/2006

Vereinfachte Syntax von Java: CompilationUnit

CompilationUnit ::={ ImportStatement }ClassDeclaration

Eine CompilationUnit ist jeweils ein Java-File.

Bsp: Laborkurs.java

• import java.util.ArrayList;import java.util.Iterator;import java.util.List;

class Laborkurs{

…}

Page 12: IT II WS 2005/2006

12Oct 3, 2005IT2 – WS 2005/2006

Notation für die Syntax 2

„class“ …• Der Programmteil beginnt mit dem Wort

„class“ gefolgt von …

( programmteil5 | programmteil6 ) • Es folgt entweder programmteil5 oder

programmteil6.

Page 13: IT II WS 2005/2006

13Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: ImportStatement

ImportStatement ::=„import“ ( ClassName | PackageName „.*“ ) „;“

ClassName ::=( Identifier | PackageName „.“ Identifier )

PackageName ::=( Identifier | PackageName „.“ Identifier )

Identifier ist eine erlaubter Java-Name.

Bsp: • import java.util.*;

Page 14: IT II WS 2005/2006

14Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: ClassDeclaration

ClassDeclaration ::=„class“ Identifier„{“

{ AttributeDeclaration } { ConstructorDeclaration } { MethodDeclaration }

„}“

Page 15: IT II WS 2005/2006

15Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: Comments

Comments ::=( „//“ Textline |

„/*“ Text „*/“ |DocComment )

DocComment ::= „/**“ Text „*/“

Bsp:• // der volle Name des Studierenden• /**

* Trage einen Studenten in diesen Kurs ein. */

Page 16: IT II WS 2005/2006

16Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: AttributeDeclaration

AttributeDeclaration ::= VariableDeclaration

VariableDeclaration ::=Type Identifier [ „=“ Expression ] „;“

Type ::= ( PrimitiveType | ClassName )

PrimitiveType ::= ( „int“| „double“ | „boolean“ | „char“| „long“ | „byte“ | „short“ | „float“)

Bsp:• int anzahl;• List studentenListe = new ArrayList();

Page 17: IT II WS 2005/2006

17Oct 3, 2005IT2 – WS 2005/2006

Notation für die Syntax 3

[ programmteil7 ]• programmteil7 ist optional, d.h. programmteil7

kann, aber muss nicht vorhanden sein.

Page 18: IT II WS 2005/2006

18Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: ConstructorDeclaration

ConstructorDeclaration ::=Classname „(“ [ ParameterList ] „)“

StatementBlock

ParameterList ::=Parameter { „,“ Parameter }

Parameter ::= Type Identifier

Bsp:• Laborkurs(String kursBezeichnung)

{setBezeichnung(kursBezeichnung);

}

Page 19: IT II WS 2005/2006

19Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: MethodDeclaration

MethodDeclaration ::=( „void“ | Type ) Identifier „(“ [ ParameterList ] „)“

StatementBlock

StatementBlock ::= „{“ { Statement } „}“

Bsp:• void listeAusgeben()

{System.out.println("Laborkurs: " + bezeichnung);System.out.println("Teilnehmerliste:");…

}• int getAnzahlStudenten()

{return studentenListe.size();

}

Page 20: IT II WS 2005/2006

20Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: Statement

Statement ::=( StatementBlock |

VariableDeclaration | Assignment |MethodCall „;“| IfStatement | WhileStatement | ReturnStatement )

Assignment ::= Êxpresion „=“ Expression „;“

ReturnStatement ::= „return“ Expression „;“

Page 21: IT II WS 2005/2006

21Oct 3, 2005IT2 – WS 2005/2006

Java-Syntax: Expression

Expression ::=( Constant |

Identifier | [ Expression ] Operator Expression |

„(“ Expression „)“ |„new“ ClassName „(“ ArgumentList „)“ | MethodCall )

MethodCall ::= [ Expression „.“ ] Identifier „(“ [ ArgumentList ] „)“

ArgumentList ::= Expression { „,“ Expression }

Page 22: IT II WS 2005/2006

22Oct 3, 2005IT2 – WS 2005/2006

Beispiele

MethodCall (Statement)• studentenListe.add(neuerStudent);

Expression• studentenListe.size()• ("Laborkurs: " + bezeichnung)• new ArrayList()