Folien - BlueJ

Werbung
Klassendefinitionen
verstehen
- Teil III -
4.0
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Formalitäten
• Klausur (gegen Ende)
• Zwei Pflichtprojekte
– müssen bestanden werden
– das erste diese Woche
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Konzepte
•
•
•
•
Konstruktoren
Felder
Primitive Typen und Objekttypen
Verschieden Quellen von
Methoden
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Klassenstruktur
public class ClassName extends Superclass
{
Fields
}
Constructors
Methods
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Konstruktoren
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Konstruktoren
Little Crab
public class CrabWorld extends World
{
public CrabWorld()
{
super(560, 560, 1);
addObject(new Crab(), 300, 300);
}
Aufgabe: Automatisch Krabben
erzeugen
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
...
}
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Primitive Typen und
Objekttypen
Little Crab
• Java unterscheidet primitive Typen
und Objekttypen
• Variablen (Felder und Parameter)
können primitive Typen oder
Objekttypen speichern
Aufgabe: Neue Würmer erzeugen,
wenn die alten gefressen werden
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Felder mit Objekttypen
MyWorld
Crab
int wormsEaten
15
World world
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Felder mit Objekttypen
• Werte von primitiven Typen werden
direkt in der Variablen gespeichert
• Für Objekttypen werden Referenzen
zu den Objekten in der Variablen
gespeichert
• Primitive Typen sind int, float,
double, char and boolean (und einige
andere, siehe Appendix B)
• All anderen sind Objekttypen
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Primitive Typen und
Objekttypen
Objekttyp
SomeObject obj;
int i;
Primitiver Typ
32
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Primitive Typen und
Objekttypen
ObjectType a;
ObjectType b;
Quiz: Was wird ausgegeben?
• int a;
int b;
a = 32;
b = a;
a = a + 1;
System.out.println(b);
• Person a;
Person b;
a = new Person("Everett");
b = a;
a.changeName("Delmar");
System.out.println( b.getName());
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Methodenaufrufe
• Drei Arten von Methodenaufrufen:
• eigene Methoden (direkt, oder von der Oberklasse):
turnAtEdge()
• Methoden von anderen Objekten:
world.addObject(new Worm(), 100, 200)
b = a;
int a;
int b;
32
32
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Methodenaufrufe
• Methoden in anderen Klassen:
Greenfoot.getRandomNumber(100)
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Little Crab
• Drei Arten von Methodenaufrufen:
• eigene Methoden (direkt, oder von der Oberklasse):
in der eigenen Klasse (oder der Oberklasse)
definiert
• Methoden von anderen Objekten:
in einer anderen Klasse definiert
• Methoden in anderen Klassen:
in einer anderen Klasse definiert, mit static
keyword
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Aufgabe: Bild animieren
ProInformatik III: Objektorientierte Programmierung, © David J. Barnes, Michael Kölling
Herunterladen