Konzepte Klassendefinitionen verstehen - Teil II - • • • • 4.0 Konditionale Ausführung public void insertMoney(int amount) { balance = balance + amount; } ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Mutator- und Accessor-Methoden String-Concatenation Konditionale Statements Locale Variablen ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Konditionale Ausführung public void insertMoney(int amount) { if(amount > 0) { balance = balance + amount; } else { System.out.println("Use a positive amount"); } } ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Konditionale Ausführung Accessor-Methoden boolean – getestete Bedingung • Methoden implementieren das Verhalten der Objekte. • Accessor-Methoden liefern Informationen über ein Objekt. • Methoden bestehen aus einer Signatur und einem Rumpf. • Der Rumpf beinhaltet die Statements der Methode. ‘if’ keyword Statements wenn ‘true’ if(perform some test) { Do these statements if the test gave a true result } else { Do these statements if the test gave a false result } ‘else’ keyword Statements wenn ‘false’ ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Accessor-Methoden Ergebnistyp Sichtbarkeitsdefinition Methodenname public int getPrice() { return price; } Parameterliste (leer) Return-Statement Mutator-Methoden • Haben eine ähnliche Struktur: Signatur und Rumpf. • Mutieren (d.h. ändern) den Zustand eines Objektes. • Dies wird erreicht durch das Ändern eines oder mehrerer Felder. – Enthalten normalerweise ZuweisungsStatements. – Erhalten oft Parameter. Anfang und ende des Methodenrumpfes (block) ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Mutator-Methoden Ergebnistyp Sichtbarkeitsdefinition Methodenname Parameterliste public void insertMoney(int amount) { balance = balance + amount; } geändertes Feld Zuweisungs-Statement ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Test public class CokeMachine { int private price; public CokeMachine() { price = 300; } public int getPrice() { return Price; } } } // Update the total collected with the balance. total = total + balance; // Clear the balance. balance = 0; ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling (fünf Fehler!) ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Ausdruck aus Methoden public void printTicket() { // Simulate the printing of a ticket. System.out.println("##################"); System.out.println("# The BlueJ Line"); System.out.println("# Ticket"); System.out.println("# " + price + " cents."); System.out.println("##################"); System.out.println(); • Was ist hier falsch? String concatenation • 4+5 9 overloading • "wind" + "ow" "window" • "Result: " + 6 "Result: 6" • "# " + price + " cents" "# 500 cents" ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Quiz • System.out.println(5 + 6 + "hello"); 11hello Wie schreiben wir 'refundBalance'? • System.out.println("hello" + 5 + 6); hello56 ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Lokale Variablen • Felder sind eine Art von Variablen. – Sie speichern Werte für die Lebenszeit eines Objektes. – Sie können von der gesamten Klasse aus benutzt werden. • Methoden können kurzlebige Variablen enthalten. – Sie existieren nur, solange die Methode ausgeführt wird. – Sie können nur innerhalb der Methode benutzt werden. ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Lokale Variablen Lokale Variable Keine Sichtbarkeitsdefinition public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Scope und Life Time • Der Scope einer lokalen Variablen ist der Block, in der sie deklariert wurde. • Die Life Time einer Variablen ist die Ausführungszeit des Blockes, in dem sie deklariert wurde. ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Review • Der Rumpf einer Klasse enthält Felder, Konstruktoren und Methoden. • Felder speichern Werte, die den Zustand des Objektes definieren. • Konstruktoren initialisieren Objekte. • Methoden implementieren das Verhalten von Objekten. ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Review • Felder, Parameter und lokale Variablen sind all Variablen. • Felder existieren für die Lebenszeit des Objektes. • Parameter werden benutzt, um Werte für eine Methode oder einen Konstruktor zu empfangen. • Lokale Variablen dienen zur kurzfristigen, temporären Speicherung. ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Review • Mit Konditionalen Statements (ifStatements) können Objekte Entscheidungen treffen. ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling Little Crab ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
© Copyright 2024 ExpyDoc