Parameterübergabe

Wang

Bekanntes Mitglied
Hallo. 😉

Folgender Quellcode ist gegeben.

Java:
public class Parameteruebergabe
{
   static String a = "A";

   static String b = "B";

   static String[] ab = {a, b};

   public static void swap (String s0, String s1)
   {
        String temp = s0;
        s0 = s1;
        s1 = temp;
   }

   public static void swap (String[] s)
   {
        String temp = s[0];
        s[0] = s[1];
        s[1] = temp;
   }

   public static void proverb()
   {
        System.out.println ("Wer " + a + " sagt, muss auch " + b + " sagen!");
        System.out.println ("Also muss auch " + ab[0] + " sagen, wer " + ab[1] + " sagt?");
   }

   public static void main (String[] args)
   {
        proverb();
        swap(a, b);
        proverb();
        swap(ab);
        proverb();
   }
}

Die Ausgabe des Programms ist:

Code:
Wer A sagt, muss auch B sagen!
Also muss auch A sagen, wer B sagt?
Wer A sagt, muss auch B sagen!
Also muss auch A sagen, wer B sagt?
Wer A sagt, muss auch B sagen!
Also muss auch B sagen, wer A sagt?

Soweit der einfache Teil, nämlich welche Ausgabe das Programm erzeugt. Jetzt ist eine ausführliche Begründung verlangt.

Naja, ich kann schlecht sagen, "frag doch den Compiler." Aber andererseits weiß ich nicht, wie ich das hier sinnvoll begründen kann...

Kann mir bitte jemand einen Tipp geben (in der Hoffnung, dass ich gedanklich etwas auf die Sprünge komme...)?

Vielen Dank. 😉
 
Das ist doch genau der gleiche Sachverhalt wie bei deinen anderen Threads. Wie wärs wenn du dir deine alten Threads nochmal durchliest und das nächste mal einfach zur Vorlesung gehst...
 
Danke soweit.

Besteht da irgendwein ein Zusammenhang mit Heap und Stack?

Mein Problem ist immer noch, den Quellcode nachzuvollziehen, vor allem, warum in der Ausgabe sechs Zeilen erscheinen, obwohl es nur zweimal die println-Methode gibt?
 
Das ist doch genau der gleiche Sachverhalt wie bei deinen anderen Threads. Wie wärs wenn du dir deine alten Threads nochmal durchliest und das nächste mal einfach zur Vorlesung gehst...

Es kursierte mal eine gewisse Grippe namens Schweinegrippe... Die Vorlesung zu dem jetzigen Thema habe ich aber nicht verpasst, ich habe nur Schwierigkeiten, das Erlernte auf diese Aufgabe anzuwenden.

Naja du rufst in main 3 mal die Methode proverb auf und proverb gibt bei jedem Aufurf 2 mal etwas aus (mit System.out.println)

Danke, jetzt ist es natürlich klar.

Abschließend nochmals meine Frage.
Ist es sinnvoll, mit Heap und Stack zu argumentieren?
 
Es kursierte mal eine gewisse Grippe namens Schweinegrippe... Die Vorlesung zu dem jetzigen Thema habe ich aber nicht verpasst, ich habe nur Schwierigkeiten, das Erlernte auf diese Aufgabe anzuwenden.
Offensichtlich gibt es da noch mehr Defizite wie die Frage zum println und deine anderen Threads bestätigen.

Abschließend nochmals meine Frage.
Ist es sinnvoll, mit Heap und Stack zu argumentieren?
Nein, erkennst du keinen Zusammenhang zwischen deiner Ursprungsfrage in diesem Thread und deinen anderen beiden Threads, die im Prinzip genau die selbe Frage beinhalten? Hier nochmal die Links
http://www.java-forum.org/java-basics-anfaenger-themen/93087-call-value.html
http://www.java-forum.org/java-basics-anfaenger-themen/93090-call-reference-effekt-objekten.html
 
Nein, erkennst du keinen Zusammenhang zwischen deiner Ursprungsfrage in diesem Thread und deinen anderen beiden Threads, die im Prinzip genau die selbe Frage beinhalten?

Doch, jetzt sehe ich allmählich den Zusammenhang.

nein, hat nichts damit zu tun, sondern wie deine überschrift schon sagt mit parameterübergabe.

Der "Witz" ist der, dass eine der beiden Assistentinnen vom Professor den "Tipp" gegeben hat, bei dieser Aufgabe ausführlich auf Stack und Heap einzugehen.
(Das ist die Dame, die auch vor einiger Zeit die "sinnvolle" Aufgabe mit den Mengen aller Mengen gestellt hat. Marco13 und 0x7F800000 können ein Lied davon singen.)
So, nun sitzt man als Anfänger mit seinem Vorlesungsskript vor der Aufgabe und versucht einen Zusammenhang zu erkennen, dann kommt obendrein noch ein falscher Tipp, was einem sein schrittweise erarbeitetes Verständnis vollkommen zunichte macht. ;(
 

Neue Themen


Zurück
Oben