Lernziele 
Zentrale Konzepte in diesem Kapitel:
Datenfelder, sondierende und verändernde Methoden, Konstruktoren, Zuweisung und bedingte Anweisung, Parameter

Java Konstrukte in diesem Kapitel:
Datenfelder, Konstruktor, Kommentar, Parameter, Zuweisung (=), Block { } , return, void, zusammengesetzter Zuweisungsoperator (+=, -=), if


2.1 Kopf der Klasse

Kommentarheader der Klasse gibt die Information über die Klasse

/*
 * Das hier sollte einen Klassenkommentar simulieren
 * Diese wird bei jeder Erzeugung einer Klasse geschrieben.
 *
 * @author Luxson Kanagarajah
 * @version 2022.09.21
 */

Die Quelltext einer Klasse besteht aus 2 Hauptbestandteile:

  1. Eine kleine äussere Klassem, die die Klasse benennt. (Klassennamen beginnen immer mit Grossbuchstaben)
public class Ticketautomat
{
  // Innenteil der Klasse ausgelassen
}

Schlüsselwörter: public oder class werden als Schlüsselwörter bezeichnet. (sind immer kleingeschrieben)

2. Innenteil { } (Der die ganze Arbeit erledigt)


2.2 Datenfelder, Konstruktoren und Methoden

  • Datenfelder |-> speichern die Daten, die das jeweilige Objekt benutzt.
  • Konstruktor |-> Ein neu erzeugtes Objekt in einem vernünftigen Anfangszustand gesetzt wird
  • Methoden |-> Die Methoden implementieren das Verhalten eines Objekts, Sie liefern seine Funktionalität

2.2.1 Datenfelder

-> Datenfelder speichern Daten dauerhaft in einem Objekt
-> Datenfelder werden auch als Instanzvariablen bezeichnet

Konzept
Datenfelder speichern die Daten, die ein Objekt benutzt. Datenfelder werden auch als Instanzvariablen bezeichnet

-> Jedes Datenfeld hat seine eigene Deklaration im Quelltext. (Vor jeder Deklaration haben wir eine Kommentarzeile; Es soll den Zweck des Datenfelds beschreiben)

Einzelkommentare werden mit // geschrieben
Mehrzeilenkommentare werden mit /* */

// Der Preis eines Tickets dieses Automaten
private int preis;

Wichtig! Datenfelder immer als private deklarieren (Im Kapitel 6 wird es ausführlicher erklärt)

Definition der Datenfelder
|-> beginnen im “normal”-Fall mit private
|-> sie enthalten einen Typnamen z.B. int, String, double, bool
|-> enthält einen vom Benutzer gewählten Namen für die Instanzvariable
|-> enden mit Semikolon ;


2.2.2 Konstruktoren

-> Haben eine ganz besondere Aufgabe. Die Konstruktoren sind verantwortlich dafür, dass ein Objekt unmittelbar nach seiner Erzeugung in einen gültigen Zustand versetzt wird => Initialisierung

Besonderer Merkmal:
-> fangt mit public an und Name der Klasse

public class Ticketautomat
{
  // Datenfelder hier ausgelassen
  
  /**
   * Erzeuge einen Automaten,der Tickets zum angegebenen Preis
   * (in Cent) ausgibt.
   * zu beachten: Der Preis muss grösser als null sein,
   * der Automat überprüft dies jedoch nicht.
   */
  public Ticketautomat(string farbe)
  {
    // Datrenfelder werden hier initialisiert
  }

}

Konzept
Konstruktoren ermöglichen, dass ein Objekt nach seiner Erzeugung in einen gültigen Zustand versetzt wird.


2.3 Datenübergabe mit Parametern

Konstruktoren können Parameter enthalten (formaler Parameter)
und steht für die Konstruktoren oder für die Methoden zu Verfügung.

public Ticketautomat(int ticketpreis)

Konzept
Durch die Sichtbarkeit einer Variablen wird der Bereich im Quelltext definiert, von dem aus, auf eine Variable zugegriffen werden kann.

Hinweis: Variablen sollen nach Ihrer Aufgabe/ Funktion benannt werden

|-> Lebensdauer eines formalen Parameter: Ausführungszeit eines Konstruktors/Methode beschränkt

|-> Lebensdauer der Datenfelder: werden zusammen mit dem Objekt erzeugt und sie bestehen solange wie das Objekt besteht

Konzept
Die Lebensdauer einer Variablen legt fest, wie lange sie existiert bevor sie zerstört wird


2.4 Zuweisungen

Konzept
Zuweisungen speichern den Wert auf der rechten Seite eines Zuweisungsoperators in der Variablen, die auf der linken Seite genannt ist.

z.B. preis = ticketpreis; = (Zuweisungsoperator), ticketpreis wird an preis übertragen

+= “Hinzuaddieren” , -= “Wegsubtrahieren” z.B. statt bishergezahlt = bishergezahlt + betrag; können wir einfach bishergezahlt += betrag;


2.5 Methoden

-> bestehen aus zwei Teilen
– einen Kopf z.B. public int gibPreis()
int ist ein Ergebnistyp, erwartet im Rumpf ein return-wert, (ausser void)
– einen Rumpf { //Alles was da drinnen steht }


2.6 Sondierende und verändernde Methoden

Konzept
Sondierende Methode liefern Informationen über den Zustand eines Objekt. (Getters)
-> enthält eine Rückgabeanweisung return…, demnach ist void kein Ergebnistyp

Konzept
Verändernde Methoden ändern den Zustand eines Objekts (Setters)
-> void-Methoden
charakterische Merkmal: Objekt verhält sich ander nach einer Methodenaufruf


2.7 Ausgaben in Methoden

Konzept
Die Methode System.out.println() gibt ihren Parameter auf der Konsole aus.
Hinweis: System.out ist ein Objekt und ruft die Methode println() auf.
Nice-To-Know: +Operator kann als Verkettung bei den Strings und als Additions-Operator für Zahlen verwendet werden.


2.8 Bedingte Anweisung

Konzept
Eine bedingte Anweisung führte eine von zwei Aktionen aus, abhängig vom Ergebnis einer Prüfung
(If-Anweisung)
“if() { } else { }

Konzept
Boolesche Ausdrücke haben nur zwei mögliche Werte wahr (true) und falsch (false). Sie werden oft verwendet, um die Auswahl zwischen zwei Ausführungspfaden in einer bedingten Anweisung zu treffen.
Operatoren: >, <, >= , <=, ==, !=


2.9 Lokale Variablen

|-> Variablen die in Methoden definiert sind

Konzept
Eine lokalen Variable ist eine Variable, die innerhalb einer Methode deklariert und benutzt wird. Sie ist nur innerhalb der Methode zugreifbar und ihre Lebensdauer entspricht der Methode

Fallstrick: Eine lokale Variable mit dem gleichen Name wie ein Datenfeld verhindert, dass innerhalb des Konstruktors bzw. der Methode auf das Datenfeld zugegriffen wird. Siehe Kapitel 3 um dies umzugehen.


2.10 Zusammenfassung der Konzepte

  • Objekterzeugung Einige Objekte können nur dann erzeugt werden, wenn zusätzliche Informationen bereitgestellt werden
  • Datenfeld Datenfelder speichern die Daten, die ein Objekt benutzt, Datenfelder werden auch als Instanzvariablen bezeichnet
  • Kommentar Kommentare werde im Quelltext einer Klasse angegeben, um menschlichen Lesern das Verstehen des Codes zu erleichtern. Sie haben keinen Einfluss auf die Funktionalität einer Klasse
  • Konstruktor Konstruktoren ermöglichen, dass ein Objekt nach seiner Erzeugung in einen gültigen Zustand versetzt wird
  • Sichtbarkeit Durch die Sichtbarkeit einer Variablen wird der Bereich innerhalb des Quelltextes definiert, in dem eine Variable zugreifbar ist
  • Lebensdauer Die Lebensdauer einer Variablen legt fest, wie lange sie existiert, bevor sie zerstört wird
  • Zuweisung Zuweisungen speichern den Wert auf der rechten Seite eines Zuweisungsoperators in der Variablen, die auf der linken Seite genannt ist
  • Sondierende Methode Sondierende Methoden liefern Informationen über den Zustand eines Objekts.
  • Verändernde Methode Verändernde Methoden ändern den Zustand eines Objekts
  • println Die Methode System.out.println gibt ihren Parameter auf der Konsole aus.
  • Bedingte Anweisung Eine bedingte Anweisung führt eine on zwei Aktionen aus, abhängig vom Ergebnis einer Prüfung
  • Boolescher Ausdruck Boolesche Ausdrücke haben nur zwei mögliche Werte: wahr(true) und falsch (false). Sie werden oft verwendet, um die Auswahl zwischen zwei Ausführungspfaden in einer bedingten Anweisung zu treffen.
  • Lokale Variable Eine lokale Variable ist eine Variable, die innerhalb einer Methode deklariert und benutzt wird. Sie ist nur innerhalb der Methode zugreifbar und ihre Lebensdauer entspricht der ihrer Methode
Zuletzt bearbeitet: 22. September 2022

Autor

Kommentare

Schreibe eine Antwort oder einen Kommentar

Deine EMail-Adresse wird nicht veröffentlicht.