IT II WS 2005/2006
description
Transcript of IT II WS 2005/2006
![Page 1: IT II WS 2005/2006](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/1.jpg)
1Oct 3, 2005IT2 – WS 2005/2006
IT II
WS 2005/2006
Peter Auer
![Page 2: IT II WS 2005/2006](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/5.jpg)
5Oct 3, 2005IT2 – WS 2005/2006
Demo mit BlueJ
![Page 6: IT II WS 2005/2006](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/8.jpg)
8Oct 3, 2005IT2 – WS 2005/2006
Klassendefinitionen verstehen
Quelltext anschauen
1.0
![Page 9: IT II WS 2005/2006](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/14.jpg)
14Oct 3, 2005IT2 – WS 2005/2006
Java-Syntax: ClassDeclaration
ClassDeclaration ::=„class“ Identifier„{“
{ AttributeDeclaration } { ConstructorDeclaration } { MethodDeclaration }
„}“
![Page 15: IT II WS 2005/2006](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062723/56814007550346895dab3ca9/html5/thumbnails/22.jpg)
22Oct 3, 2005IT2 – WS 2005/2006
Beispiele
MethodCall (Statement)• studentenListe.add(neuerStudent);
Expression• studentenListe.size()• ("Laborkurs: " + bezeichnung)• new ArrayList()