hi, ich lerne seit kurzem wie man programmiert und bin beim Thema Methoden bzw. Methodenaufruf, Übergabeparameter usw.
zu diesen themen gab es ein beispielcode in dem buch, was ich gerade lese:
ich wollte hier nur mal schreiben, ob ich den code richtig verstanden habe:
der formale paramater der methode "methode1" (par) ist von einem einfachen Datentyp. der formale paramater der Methode "methode2" (refPara) ist eine Referenz auf ein Objekt vom Typ Reftyp.
in der main-Methode wird zunächst einmal der variablen var der Wert 1 zugewiesen. anschließend wird eine neue Referenzvariable ref erzeugt, die auch auf ein Objekt vom Typ RefTyp zeigen kann.
danach zeigt die referenzvariable auf das datenfeld x und weist dem x den wert 1 zu.
was in den System.out.println-befehlen passiert, weiß ich. Dass man also mit dem Plus-Operator Strings miteinander verbinden kann usw. das ist schon klar.
was mir allerdings nicht klar ist, was die Zeile 29 bedeuten soll. da wird doch der methode1 der wert von der variablen, also die 1 übergeben, oder etwa nicht? aber darf man auf diese weise methoden aufrufen? ich dachte mir immer dass man eine referenzvariable braucht, um mit dem punktoperator die methode aufzurufen. ist das etwa nicht so?
und in der zeile passiert genau dasselbe spiel: der methode2 wird die in der main-methode erzeugte referenzvariable übergeben, was ja auf die 1 zeigt.
habe ich den code richtig verstanden? wenn ja, kann mir jmd. dann die stellen erklären, die mir noch nicht so klar sind?
vielen dank schonma im voraus
zu diesen themen gab es ein beispielcode in dem buch, was ich gerade lese:
Java:
class RefTyp
{
int x;
}
public class Parameter
{
public static void methode1 (int par)
{
par = 2;
}
public static void methode2(RefTyp refPara)
{
refPara.x = 2;
}
public static void main (String [] args)
{
int var = 1;
RefTyp ref = new RefTyp();
ref.x = 1;
System.out.println("Übergabeparameter ist von einem "
+ "einfachen Datentyp");
System.out.println("aktueller Parameter vor Aufruf: " + var);
methode1 (var);
System.out.println("aktueller Parameter nach Aufruf: " + var);
System.out.println("Übergabeparameter ist ein Referenztyp");
System.out.println("Datenfeld vor Aufruf : " + ref.x);
methode2 (ref);
System.out.println("Datenfeld nach Aufruf : " + ref.x);
}
}
ich wollte hier nur mal schreiben, ob ich den code richtig verstanden habe:
der formale paramater der methode "methode1" (par) ist von einem einfachen Datentyp. der formale paramater der Methode "methode2" (refPara) ist eine Referenz auf ein Objekt vom Typ Reftyp.
in der main-Methode wird zunächst einmal der variablen var der Wert 1 zugewiesen. anschließend wird eine neue Referenzvariable ref erzeugt, die auch auf ein Objekt vom Typ RefTyp zeigen kann.
danach zeigt die referenzvariable auf das datenfeld x und weist dem x den wert 1 zu.
was in den System.out.println-befehlen passiert, weiß ich. Dass man also mit dem Plus-Operator Strings miteinander verbinden kann usw. das ist schon klar.
was mir allerdings nicht klar ist, was die Zeile 29 bedeuten soll. da wird doch der methode1 der wert von der variablen, also die 1 übergeben, oder etwa nicht? aber darf man auf diese weise methoden aufrufen? ich dachte mir immer dass man eine referenzvariable braucht, um mit dem punktoperator die methode aufzurufen. ist das etwa nicht so?
und in der zeile passiert genau dasselbe spiel: der methode2 wird die in der main-methode erzeugte referenzvariable übergeben, was ja auf die 1 zeigt.
habe ich den code richtig verstanden? wenn ja, kann mir jmd. dann die stellen erklären, die mir noch nicht so klar sind?
vielen dank schonma im voraus