Um welche Art von Variable handelt es sich?

2 Antworten

Ich habe sicherheitshalber noch einmal in meiner Fachlektüre nachgeschaut und im Internet sorgfältig recherchiert.

Ein Konstruktor hat eine Parameterliste:

public Schulklasse(String kbz, String bgang, int anzahl) { … }

Die Variablen kbz, bgang und anzahl in den runden Klammern werden als Parameter bezeichnet.

Auch Methoden verfügen über eine Parameterliste, z. B.:

public void setInfo(String a, int b, boolean c) { … }

In der Methodendefinition werden die Parameter a, b und c angegeben.

Beim Aufruf von Methoden und Konstruktoren spricht man hingegen von Argumenten:

setInfo("Hallo", 12, true);
Schulklasse klasse = new Schulklasse("8b", "Gymnasium", 25);

Die Werte "Hallo", 12 und true sind die Argumente, die beim Aufrufen der Methode setInfo(String, int, boolean) an die jeweiligen Parameter a, b und c übergeben werden.

Bei den Werten "8b", "Gymnasium" und 25 handelt es sich ebenfalls um Argumente, die beim Aufrufen des Konstruktors Schulklasse(String, String, int) an dessen Parameter kbz, bgang und anzahl übergeben werden.

klassenbezeichnung, bildungsgang und anzahl_schueler sind Klassenvariablen bzw. Instanzvariablen. Diesen werden im Konstruktor die Werte der Parametervariablen kbz, bgang und anzahl zugewiesen.

Beachte aber, dass die Begriffe Parameter und Argument allerdings häufig synonym benutzt werden.

Siehe dazu:

Bei den oberen drei Variablen

private String klassenbezeichnung;
private String bildungsgang;
private int anzahl _schueler;

handelt es sich um Instanzvariablen (Objektvariablen).

Bei den unteren drei Variablen

String kbz, String bgang, int anzahl

handelt es sich um Parameter.

Im Konstruktor werden die Instanzvariablen anhand der Parameter gesetzt.

Woher ich das weiß:Berufserfahrung – Software-Entwicklung
raleD  28.09.2023, 00:31

naah anhand der Argumente eher weil die Parameter sind ja nur Platzhalter und die Werte werden dann als Argumente gegeben

0
Willibergi  28.09.2023, 00:31
@raleD

Argumente und Parameter sind in dem Fall dasselbe.

0
regex9  28.09.2023, 04:55
@raleD

Die Bezeichnung Parameter passt für beide Fälle. Allerdings unterscheidet man zwischen formalen Parametern (das sind die Parameter in der Definition des Methodenkopfs) und tatsächlichen Parametern (Argumente; werden bei Aufruf der Methode übergeben).

1
raleD  28.09.2023, 11:56
@regex9

Die eigentlichen Werte werden aber ja als Argumente übergeben

0
regex9  28.09.2023, 14:01
@raleD

Das die übergebenen Werte etwas anderes sind, als die Variablen, die die Werte empfangen, wird von mir nicht in Abrede gestellt (s.o., ich habe es explizit geschrieben). Es geht um den Begriff Parameter.

0
raleD  28.09.2023, 15:16
@regex9

Er hat ja gesagt anhand den Parametern werden die Instanzvariablen gesetzt aber die Parameter des Konstruktors haben die Werte der Argumente die übergeben werden also werden die Instanzvariablen ja genau gesehen anhand der Argumente gesetzt und nicht anhand der Parameter des Konstruktors weil die ja nur die Argumente übernehmen

0
regex9  28.09.2023, 15:37
@raleD

Die Beschreibung von Willibergi ist richtig.

0