Java Basis-Sprachelemente

Aus SibiWiki
Zur Navigation springen Zur Suche springen


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 sich String.
  • 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.

Konstruktor mit Parameter

Man kann im Konstruktor einen Parameter übergeben, z.B. um direkt bei der Erzeugung die Eigenschaft eines Objektes festzulegen.

Beispiel:

 public class Crab
 {
   // Attribute
   private int geschwindigkeit;   
    
   // Konstruktor
   public Crab(int pGeschwindigkeit)
   {
     geschwindigkeit = pGeschwindigkeit;
   }
  
   // Methoden
 }

Dadurch muss man bei der Erzeugung der Krabbe die Geschwindigkeit festlegen.

Aufgerufen wird dieser Konstruktor dann z.B. so:

Crab neueKrabbe = new Crab(3);

Damit hat neueKrabbe die Geschwindigkeit 3.

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 ist int, also eine ganze Zahl.
  • 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()
  • verändernde Methode: Dieser Methodentyp verändert das Objekt.
    • Beispiel: public void setzeGeschwindigkeit()

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)
  • int: Wenn die Methode eine ganze Zahl (int) zurückgibt.
    • Beispiel: public int gibGeschwindigkeit()
  • 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 Klasse Crab) zurückgeben.

lokale Variablen

  • Lokale Variablen sind nur in dem Block gültig, in dem sie deklariert wurden.
  • Lokale Variablen kann man (im Gegensatz zu Attributen) nicht in der ganzen Klasse benutzen.
  • Man benutzt lokale Variablen, um Informationen zu speichern, die man nur kurzfristig braucht.

Beispiel:

 public class Crab
 {
    ...
    public void act()
    {
       CrabWorld cw = (CrabWorld)getWorld();
       Lobster lo = cw.getLobster();
       int xLobster = lo.getX();
       int yLobster = lo.getY();
       ...
       // jetzt kann man xLobster und yLobster verwenden!
       // z.B. um die Krabbe in Richtung (xLobster, yLobster) zu steuern.
    }
  }

cw, lo, xLobster, yLobster sind lokale Variablen.

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 Wert neueGeschwindigkeit zugewiesen.
  • Beispiele 1:
    • geschwindigkeit = geschwindigkeit + 1;
    • Damit wird dem Attribut geschwindigkeit der Wert geschwindigkeit+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