Folien - BlueJ

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