Java Basis-Sprachelemente: Unterschied zwischen den Versionen
Zeile 22: | Zeile 22: | ||
= Klasse, Objekt, Klassendefinition = | = Klasse, Objekt, Klassendefinition = | ||
''Auf dieser Seite werden Klassen, Objekte etc. Schritt für Schritt erklärt. | |||
''Den erläuterten kompletten Quellcode einer Java-Klasse findet man hier: [[Klasse in Java]]'' | |||
* Von einer '''Klasse''' können viele '''Objekte''' erzeugt werden. | * Von einer '''Klasse''' können viele '''Objekte''' erzeugt werden. | ||
* Beispiel: Es gibt eine Klasse <code>Crab</code>, von der man viele einzelne Objekte erzeugen kann. | * Beispiel: Es gibt eine Klasse <code>Crab</code>, von der man viele einzelne Objekte erzeugen kann. |
Version vom 29. September 2013, 19:23 Uhr
Anforderungen Zentralabitur
Das Zentralabitur fordert die Kenntnis von bestimmten Basis-Sprachelementen, die hier aufgeführt sind.
Im folgenden werden diese und weitere Basis-Sprachelemente erläutert.
Stand: 2012 (im April 2013 noch aktuell)
- Klassendefinitionen
- Beziehungen zwischen Klassen
- gerichtetete Assoziation
- Vererbung
- Attribute und Methoden (mit Parametern und Rückgabewerten)
- Wertzuweisungen
- Verzweigungen (if, switch)
- Schleifen (while, for, do-while)
Klasse, Objekt, Klassendefinition
Auf dieser Seite werden Klassen, Objekte etc. Schritt für Schritt erklärt.
Den erläuterten kompletten Quellcode einer Java-Klasse findet man hier: Klasse in Java
- Von einer Klasse können viele Objekte erzeugt werden.
- Beispiel: Es gibt eine Klasse
Crab
, von der man viele einzelne Objekte erzeugen kann. - Java: Definiton einer Klasse:
public class Crab
{
// Attribute
// Konstruktor
// Methoden
}
Attribute
- Attribute beschreiben, welche Eigenschaften bzw. Teil-Objekte die Objekte einer Klasse haben.
- Jedes Attribut kann für jedes einzelne Objekt einer Klasseeinen anderen Wert, den Attribut-Wert haben.
- Beispiel: Die eine Krabbe hat die Geschwindigkeit 5, die andere Krabbe hat die Geschwindigkeit 10.
- Attribute haben einen Attribut-Typ. Für Geschwindigkeiten ist beispielsweise ein Zahltyp sinnvoll, etwa
int
für ganze Zahlen. Für Namen eignet sichString
. - Java:
- Attribute werden direkt nach der Klassen-Deklaration notiert.
- Attribute sind in der Regel
private
, d.h. sie können nicht ohne Weiteres von Außen verändert werden.
Beispiel 1:
Objekte der Klasse Crab
können unterschiedliche Geschwindigkeiten haben.
Dafür gibt es das Attribut geschwindigkeit
public class Crab
{
// Attribute
private int geschwindigkeit;
// Konstruktor
// Methoden
}
Beispiel 2:
Objekte der Klasse Baum
bestehen aus einen Quadrat (für den Stamm) und einem Kreis (für die Krone).
public class Baum
{
// Attribute
private Quadrat stamm;
private Kreis krone;
// Konstruktor
// Methoden
}
Konstruktor
Aufruf des Konstruktors:
- Um ein neues Objekt einer Klasse zu erzeugen, ruft man den Konstruktor der Klasse auf, z.B.:
- Java:
Crab neueKrabbe = new Crab();
Deklaration des Konstruktors:
- In der Deklaration des Konstruktors wird festgelegt, was passiert, wenn ein Objekt der Klasse erzeugt wird.
- Der Konstruktor heißt genauso wie die Klasse.
- Der Konstruktor hat keinen Rückgabetyp, also auch kein
void
.
Beispiel:
public class Crab
{
// Attribute
private int geschwindigkeit;
// Konstruktor
public Crab()
{
turn(50);
}
// Methoden
}
Dadurch wird jede Krabbe bei der Erzeugung um 50 Grad gedreht.
Methoden
In Methoden wird festgelegt, was man mit einem Objekt der Klasse machen kann.
Beispiel:
Für ein Objekt der Klasse Krabbe soll die Geschwindigkeit festgelegt werden können. Außerdem soll man die Geschwindigkeit auslesen können.
public class Crab
{
// Attribute
private int geschwindigkeit;
// Konstruktor
public Crab()
{
turn(50);
}
// Methoden
public void setzeGeschwindigkeit(int neueGeschwindigkeit)
{
geschwindigkeit = neueGeschwindigkeit;
}
public int gibGeschwindigkeit()
{
return geschwindigkeit;
}
}
Parameter
- Manche Methoden brauchen eine zusätzliche Information, um richtig arbeiten zu können.
- Das ist hier der Fall bei der Methode
setzeGeschwindigkeit
: Damit sie sinnvoll arbeiten kann, muss man angeben können, wie groß die Geschwindigkeit sein soll. - Dafür haben Methoden Parameter, in diesem Fall
neueGeschwindigkeit
. - Bei Parametern muss immer der Typ festgelegt werden; man spricht von Parameter-Typ.
- Der Parameter-Typ von
neueGeschwindigkeit
istint
, also eine ganze Zahl.
- Der Parameter-Typ von
- Wenn eine Methode mit Parameter aufgerufen wird, dann muss man den Parameter übergeben:
Crab c = new Crab();
c.setzeGeschwindigkeit(10);
- Bei Methoden ohne Parameter steht nach dem Methoden-Namen nur
()
. Das ist wichtig, um sie von Attribute zu unterscheiden!
sondierende Methode / verändernde Methode
- sondierende Methode: Dieser Methodentyp gibt eine Information über das Objekt zurück.
- Beispiel:
public int gibGeschwindigkeit()
- Beispiel:
- verändernde Methode: Dieser Methodentyp verändert das Objekt.
- Beispiel:
public void setzeGeschwindigkeit()
- Beispiel:
Rückgabetyp einer Methode
Für eine Methode wird immer der Rückgabetyp festgelegt.
void
: Wenn die Methode nichts zurückgibt (bei einer verändernden Methode).- Beispiel:
public void setzeGeschwindigkeit(int neueGeschwindigkeit)
- Beispiel:
int
: Wenn die Methode eine ganze Zahl (int
) zurückgibt.- Beispiel:
public int gibGeschwindigkeit()
- Beispiel:
- Statt
int
kann auch jeder andere Typ oder auch eine Klasse (z.B.Crab
) der Rückgabe-Typ einer Methode sein.- Beispiel:
public Crab gibKopie()
: Diese Methode würde eine Kopie der Krabbe (also ein Objekt der KlasseCrab
) zurückgeben.
- Beispiel:
Wertzuweisungen
- Attributen und lokalen Variablen können Werte zugewiesen werden.
- Beispiele 1:
geschwindigkeit = 10;
- Damit wird dem Attribut
geschwindigkeit
der Wert 10 zugewiesen.
- Beispiele 2:
geschwindigkeit = neueGeschwindigkeit;
- Damit wird dem Attribut
geschwindigkeit
der WertneueGeschwindigkeit
zugewiesen.
- Beispiele 1:
geschwindigkeit = geschwindigkeit + 1;
- Damit wird dem Attribut
geschwindigkeit
der Wertgeschwindigkeit+1
zugewiesen, - d.h. die Geschwindigkeit wird um 1 erhöht!
- Allgemein:
- links vom Gleichzeichen steht das Attribut (bzw. die lokale Variable), der ein neuer Wert zugewiesen wird.
- rechts vom Gleichzeichen steht der neue Wert.
Verzweigungen (if, switch)
TODO
Schleifen (while, for, do-while)
TODO
Beziehungen zwischen Klassen
TODO
gerichtetete Assoziation
TODO
Vererbung
TODO