Computeranwendung und Programmierung (CuP) Übungsorganisation Bringen Sie Ihren Labtop in die Übungen mit! 09.10.2017 CuP - VO 2
Programmieren 1. Definition der Aufgabe, die das Programm lösen soll. 2. Entwickeln eines Lösungsweges. 3. Übersetzen in eine Programmiersprache. 4. Testen des Programms. Muss geübt werden! 09.10.2017 CuP - VO 3 Java-Klasse Beschreibt die Eigenschaften ihrer Objekte: Welche Daten? (Attribute). Welche Abläufe? (Methoden). Wie erzeugen? (Konstruktor). Beispiel: Ticketautomat 09.10.2017 CuP - VO 4
Java-Syntax: Klasse public class Klassenname { Attributdefinitionen Konstruktordefinitionen Methodendefinitionen 09.10.2017 CuP - VO 5 Java-Syntax: Attributdefinition private typ attributname; typ ist z.b.: int, String, Ticketautomat 09.10.2017 CuP - VO 6
Java-Syntax: Konstruktordefinition public Klassenname(parameterliste) { anweisungen Z.B.: public Ticketautomat(int nr) Typischerweise initialisieren die Anweisungen des Konstruktors die Attribute. 09.10.2017 CuP - VO 7 Java-Syntax: Methodendefinition public typ methodenname(parameterliste) { anweisungen typ ist der Typ des Rückgabewertes, oder void, wenn die Methode keinen Wert zurückgibt. Z.B.: public int geldeinwerfen(int betrag) 09.10.2017 CuP - VO 8
Java-Syntax: Parameterliste typ1 parametername1,..., typn parameternamen Kann leer sein, z.b. public void drucketicket() Kann einen Parameter enthalten, public Ticketautomat(int nr) Kann mehrere Parameter enthalten, public RobotSE(City acity, int zeile, int spalte, Direction dir) 09.10.2017 CuP - VO 9 Java-Syntax: Anweisung Zuweisung return-anweisung Bedingte Anweisung Methodenaufruf while-break-schleife 09.10.2017 CuP - VO 10
Java-Syntax: Zuweisung variable = ausdruck; Zuweisung von rechts nach links!! ausdruck liefert einen Wert. Z.B.: this.gesamtbetrag = this.gesamtbetrag + betrag; 09.10.2017 CuP - VO 11 Java-Syntax: return-anweisung return ausdruck; Beendet den Ablauf der aktuellen Methode und gibt den Wert des berechneten Ausdrucks zurück. Z.B: return this.gesamtbetrag; 09.10.2017 CuP - VO 12
Java-Syntax: Bedingte Anweisung if(bedingung) { anweisungen1 else { anweisungen2 if(bedingung) { anweisungen1 Z.B.: if(betrag <= this.gesamtbetrag) 09.10.2017 CuP - VO 13 Lokale Variablen Werden in Methoden (oder Konstruktoren) unter Angabe des Typs definiert. Erhalten einen Wert durch Zuweisung. Speichern Werte, die während der Ausführung einer Methode berechnet und verwendet werden. Z.B.: int restgeld = this.gesamtbetrag betrag; 09.10.2017 CuP - VO 14
Lokale (private) Hilfsmethoden Zweck: Übersichtlichere Ablaufstruktur Vermeidung von doppelten Programmteile Z.B.: private void druckebetrag(int betrag) 09.10.2017 CuP - VO 15 Verwendung vordefinierter Klassen: import Klassendefinition: import ; public class Klassenname { Attributdefinitionen Konstruktordefinitionen Methodendefinitionen 09.10.2017 CuP - VO 16
Das Paket becker.robots Wichtige Klassen: City, RobotSE, Direction, Wall, Thing, MazeCity. Konstruktoren public City() public RobotSE(City acity, int zeile, int spalte, Direction dir) public Wall(City acity, int zeile, int spalte, Direction dir) public Thing(City acity, int zeile, int spalte) public MazeCity(int anzzeilen, int anzspalten) 09.10.2017 CuP - VO 17 API - Klassendokumentation API = Application Programming Interface Das Java API gibt Aufschluss über die Konstruktoren und Methoden von vordefinierten Klassen. 09.10.2017 CuP - VO 18
Wesentliche Methoden von RobotSE public void move() public void turnleft() public void turnright() public void pickthing() public void putthing() public int getstreet() public int getavenue() public Direction getdirection() public boolean frontisclear() public boolean canpickthing() 09.10.2017 CuP - VO 19 Direkte Steuerung der Roboter mittels static-methode Statische Methoden können ohne Erzeugung eines Objekts aufgerufen werden, und eignen sich daher als globale Steuerungsmethoden. Typischerweise sind sie in eigenen Main- Klassen definiert. 09.10.2017 CuP - VO 20