1 / 22

IT II WS 2005/2006

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.

declan
Télécharger la présentation

IT II WS 2005/2006

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IT IIWS 2005/2006 Peter Auer

  2. Inhalt • Objektorientierte Programmierung (in Java) • David J. Barnes & Michael KöllingObjektorientierte Programmierung mit JavaEine praxisnahe Einführung mit BlueJPearson Studium, 2003ISBN 3-8273-7073-6. • Grundprinzipien der (objektorientierten) Programmierung • Algorithmen und Datenstrukturen

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

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

  5. Demo mit BlueJ

  6. Basiskonzepte • Objekt (object) • Klasse (class) • Methode (method) • Parameter (parameter) • Datentyp (data type)

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

  8. Klassendefinitionen verstehen • Quelltext anschauen 1.0

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

  10. Notation für die Syntax 1 • programmteil1 ::=programmteil2programmteil3 … • programmteil1 besteht aus programmteil2, gefolgt von programmteil3, … • { programmteil4 } • programmteil4 wird beliebig oft wiederholt (auch 0-mal).

  11. 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{ …}

  12. Notation für die Syntax 2 • „class“ … • Der Programmteil beginnt mit dem Wort „class“ gefolgt von … • ( programmteil5 | programmteil6 ) • Es folgt entweder programmteil5 oder programmteil6.

  13. 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.*;

  14. Java-Syntax: ClassDeclaration • ClassDeclaration ::= „class“ Identifier„{“ { AttributeDeclaration } { ConstructorDeclaration } { MethodDeclaration } „}“

  15. Java-Syntax: Comments • Comments ::= ( „//“ Textline | „/*“ Text „*/“ |DocComment ) • DocComment ::= „/**“ Text „*/“ • Bsp: • // der volle Name des Studierenden • /** * Trage einen Studenten in diesen Kurs ein. */

  16. 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();

  17. Notation für die Syntax 3 • [ programmteil7 ] • programmteil7 ist optional, d.h. programmteil7 kann, aber muss nicht vorhanden sein.

  18. Java-Syntax: ConstructorDeclaration • ConstructorDeclaration ::=Classname „(“ [ ParameterList ] „)“StatementBlock • ParameterList ::=Parameter { „,“ Parameter } • Parameter ::= Type Identifier • Bsp: • Laborkurs(String kursBezeichnung) { setBezeichnung(kursBezeichnung);}

  19. 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();}

  20. Java-Syntax: Statement • Statement ::= ( StatementBlock |VariableDeclaration | Assignment |MethodCall „;“| IfStatement | WhileStatement | ReturnStatement ) • Assignment ::= Êxpresion „=“ Expression „;“ • ReturnStatement ::= „return“ Expression „;“

  21. Java-Syntax: Expression • Expression ::= ( Constant | Identifier | [ Expression ] Operator Expression | „(“ Expression „)“ | „new“ ClassName „(“ ArgumentList „)“ | MethodCall ) • MethodCall ::= [ Expression „.“ ] Identifier „(“ [ ArgumentList ] „)“ • ArgumentList ::= Expression { „,“ Expression }

  22. Beispiele • MethodCall (Statement) • studentenListe.add(neuerStudent); • Expression • studentenListe.size() • ("Laborkurs: " + bezeichnung) • new ArrayList()

More Related