Skip to content

Latest commit

 

History

History
144 lines (102 loc) · 3.83 KB

klassen.md

File metadata and controls

144 lines (102 loc) · 3.83 KB

Klassen

Inhalt

  1. Klassenkopf
  2. Klassenkörper
  3. Attribute
  4. Methoden
    1. Constructor
    2. Auftrag
    3. Anfrage

Jede Java Klasse wird wie im Beispiel definiert, wobei jede Klasse aus einem Klassenkopf und einem Klassenkörper besteht.

Klassenkopf

Der Klassenkopf enthält mindestens:

  • Sichtbarkeit (public, private)
  • Typ (class, enum, interface)
  • Bezeichnung (selbstgewählter Name)

Der Klassenname wird grundsätzlich am Anfang großgeschrieben und sollte nur ASCII-Zeichen enthalten.

Klassenkörper

Die Attribute und Methoden der Klassen werden innerhalb der geschweiften Klammern notiert. Der Klassenkörper folgt unmittelbar dem Klassenkopf.

public class Klassenname // Klassenkopf
{    
    // Klassenkörper    
}

Attribute

Jede Klasse kann mehrere Attribute besitzen, muss sie jedoch nicht. Attribute werden - ebenso wie Methoden - innerhalb des Klassenkörpers notiert.

Im Folgenden ist die Klasse Agent beispielhaft dargestellt. Jede Instanz der Klasse Agent soll einen Namen haben.

Wie bei den Klassenkörpern erwartet jedes Attribut drei Schlüsselwörter:

  • Sichtbarkeit (public,protected, private)
  • Typ (Datentyp)
  • Bezeichnung (selbstgewählter Name)

Attribute werden, ebenso wie Variablen, stets kleingeschrieben. So lässt sich besser zwischen Variable und Datentyp unterscheiden. Der Datentyp wird immer großgeschrieben. Ausnahmen stellen nur die sogenannten primitiven Datentypen dar, wie etwa int, da diese keiner Datentypklasse entspringen und deshalb auch keine eigenen Methoden besitzen. Mehr dazu auch unter Datentypen

Um das Attribut manipulieren zu können, setzen wir die Sichtbarkeit auf public. Warum das nicht immer sinnvoll ist, wird im Abschnitt Methoden erläutert.

Da der Agentenname eine Zeichenkette sein soll, setzen wir als Datentyp String.

public class Agent // Klassenkopf
{
    public String name; // Attribut (Datentyp attributName)
}

Methoden

Methoden werden im Klassenkörper notiert und haben denselben formalen Aufbau wie die Klassen selbst. Sie bestehen also aus einem Methodenkopf und einem Methodenkörper.

public class Agent // Klassenkopf
{

    public String name; // Attribut (Datentyp attributName)
    
    public Rückgabedatentyp methodenName // Methodenkopf
            (
                    Parameterdatentyp parameterBezeichner // Parameterliste (kommagetrennt)
            ) 
    {
        // Methodenkörper
    }    
    
}

Obwohl alle Methoden demselben Aufbau folgen, lassen sich mindestens drei Arten von Methoden unterscheiden.

Constructor

Constructor-Methoden werden beim Initialisieren einer Instanz ausgeführt. Sie sind daran erkennbar, dass sie grundsätzlich großgeschrieben werden und denselben Namen haben wie ihre Klasse.

Da Constructor-Methoden immer die eigene Klasse zurückgeben, fehlt hier der Rückgabetyp.

Unsere Klasse Agent könnte also folgenden Constructor haben:

public class Agent // Klassenkopf
{
    public String name; // Attribut
    
    public Agent() // Constructor, Methodenkopf
    {
        // Constructor, Methodenkörper
    }
}

Um zu verstehen, was die Constructor-Methode macht, könnten wir uns den Aufbau so vorstellen:

public class Agent // Klassenkopf
{    
    public Agent constructor() // Constructor, Methodenkopf
    {
        // Constructor, Methodenkörper
    }
}

Da die Constructor-Methode nur ihre Klasse zurückgibt (ähnliches Verhalten wie void), handelt es sich hier also um einen sogenannten Auftrag. Denn es wurde mit Agent bond = new Agent() der Auftrag erteilt, eine neue Instanz vom Typ Agent zu erstellen.

Wir können also Methoden unterscheiden in Aufträge und Anfragen.

Auftrag

Anfrage