Was ist ein Parameter (Informatik)?

3 Antworten

So ganz verstehe ich deine Frage nicht, aber ich versuche mal, dahinter zu steigen.

Ein Parameter ist, so wie du es darstellst, eine Variable, die übergeben wird.

this.x = x
Wieso ist x=x????

X ist nicht gleich x, sondern this.x ist gleich x

Du erstellst eine neue Instanz (also ein neues Element) von Schlaeger. Dieses Element von SCHLAEGER soll eine bestimmte breite haben - aber eine andere Instanz von Schlaeger soll eine andere Breite haben.

Darum setzt du die Eigenschaft von Schlaeger jetzt gleich diesem Wert - und setzt es nicht fest.

in deinem Beispiel:

public SCHLAEGER( int breite){
this.breite=breite
}

wenn du also später der Konstruktor benutzt, kannst du ihn einmal so

SCHLAEGER(5) 

und einmal

SCLAEGER(8)

aufrufen. Sonst hätten alle Schlaeger die gleiche Groesse.

Dann hat der eine die Breite 5, der andere 8

Es wäre in der Schule sinnvoller, nicht direkt mit der objektorientierten Programmierung zu beginnen. Die verwirrt nämlich Anfänger.

Ich werde meine Antwort daher so formulieren, dass ich auf Java-spezifische Bezeichnungen bzw. Bezeichnungen, die aus der Objektorientierung kommen, verzichten.

In der Programmierung kann ein Programm aus Unterprogrammen bestehen. Diese Unterprogramme können irgendeine Aufgabe erledigen.

Manche Unterprogramme benötigen beim Aufruf Parameter. Parameter sind Übergabewerte. Stelle dir etwa vor, dass es ein Unterprogramm gibt, das die Quadratwurzel einer Zahl berechnet. Dann müsstest Du die Zahl dem Unterprogramm bekannt machen. Dazu übergibst du die Zahl als Parameter an das Unterprogramm.

Nun zu Java:

Wenn Du eine Klasse in Java erstellst, in deinem Fall ein Schläger, möchtest Du die Länge und Breite speichern. Die Klasse sähe wie folgt aus:

public class Schlaeger {

  private int laenge;
  private int breite;

  public Schlaeger(int laenge, int breite){
    this.laenge = laenge;
    this.breite = breite;
  }

}

Dein Schläger speichert zwei Variablen (in Java werden Variablen auf Felder genannt). DIese sind durch private int laenge, breite gekennzeichnet.

Wenn Du ein Objekt anlegst, musst Du für deinen Schläger natürlich diese Werte dem Objekt bekanntmachen. Dies erfolgt im Konstruktor durch die Übergabe der Parameter.

this.laenge = laenge;

Die beiden dort genutzen Felder sind zwei verschiedene Felder.

this.laenge ist das Feld der Klasse (das Du mit private int laenger; deklariert hast). Und laenge ist der Parameter int laenge.

this ist ein Schlüsselwort in Java, womit man sich auf die Felder des Objektes bezieht. Es ist im Regelfall optional und wird nur benötigt, wenn der Name des Feldes und der Name des Parameters übereinstimmen.

Alternativ hättest Du es auch wie folgt schreiben können:

public Schlaeger(int _laenge, int _breite){
  laenge = _laenge;
  breite = _breite;
}

Aber diese Schreibweise ist in Java unüblich. Da in dem Fall die Namen aber unterschiedlich sind, wird this nicht benötigt.

________________________

Aus meiner Sicht wäre es sinnvoller, wenn man zunächst die strukturierte Programmierung in C lehrt. Denn wer dort die Grundlagen verstanden hat, für den sind Sprachen wie Java oder C# Pillepalle.

Woher ich das weiß:Berufserfahrung

Mit den Parametern kannst du im Konstruktor Variablen statt Werte einfügen und so jedesmal neu entscheiden, wie dein Schläger aussieht, indem du in die Klammer statt den Parametern beim Erzeugen eines Objekts die jeweiligen Werte einsetzt.