Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wenn zuerst die get Methode ausgeführt wird müßte doch der String nummer1 geändert werden. Und wenn danach die set Methode ausgeführt wird müßte doch die 2te Ausgabe den gleichen Wert haben wie die erste oder?
Code:
public class Uebergabe {
String nummer2;
public void getnummer(String Nummer)
{
this.nummer2 = Nummer;
System.out.println("DAS IST DIE NUMMER VON UEBERGABE " + nummer2);
}
public String setNummer()
{
System.out.println("DAS IST DIE NUMMER VON UEBERGABE 2 " + nummer2);
return this.nummer2;
}
}
Ich sehe kein "nummer1"
Außerdem weisen die beiden Methodennamen genau umgekehrte Funktionalität auf. Die get-Methode sollte das tun, was in der set-Methode umgesetzt wurde und anders herum.
Also erstmal hast du wohl deine get- und setmethode verwechselt. Eigentlich "setzt" man bei der set-methode den Wert und get liefert den Wert zurück. Macht aber auch nur Sinn, wenn du deine Variablen als "private" deklarierst, d.h. dass sie nur aus der Klasse aufgerufen werden können. Also was verstehst du denn genau unter String "nummer1" ? die Instanzvariable nummer2 oder den parameter nummer? Aber warum die beiden Ausgaben nicht den gleichen Wert haben, liegt daran, dass du einen String und keinen int hast.
ah genau vertauscht. Also nochmal. Ich bekomme irgendwo nummer1 her und setzte ihn mit der setMethode = nummer 2. nun Möchte ich den neuen Wert woanders nutzen und nehme dazu die getmethode. Nun müßte doch der der Wert (von nummer 1) mit der get Methode übergeben werden oder?
also:
nummer2 = ""
nun set. -> nummer2 = "z.B. hallo"
nun get -> return "z.B. hallo"
Code:
public class Uebergabe {
String nummer2;
public void setNummer(String nummer1)
{
System.out.println("DAS IST DIE NUMMER VON UEBERGABE 2 " + nummer2);
nummer2 = nummer1;
}
public String getnummer()
{
System.out.println("DAS IST DIE NUMMER VON UEBERGABE " + nummer2);
return nummer2;
}
}
Der Übersichtlichkeit halber würde ich aber den Übergabeparameter allerdings nicht nummer1 nenne, sondern newString oder so. nummer2 ist auch irreführend für eine Variable, die einen String beinhaltet. Da würde man eher einen int erwarten.
Ja ok mit den Namen der Variablen stimmt. Muss nur noch schauen wo der Fehler ist da in meinen Programm bei get immer kein Wert zurückgegeben wird obwohl vorher mit set einer gesetzt wurde
Also wie glaubst du an den selben Wert rann zu kommen, wenn du eine neue Instanz anlegst?
Wenn du deiner Ex-Freundin ein Ring schenkst, kannst du doch nicht erwarten, das deine Neue den selben Ring trägt?
OK, ein blödes Beispiel, aber was besseres fiel mir gerade nicht ein ;-).
Ok ich bin nun das in meine Klasse ein wo ich die MEthoden liegen die in zwei unterschiedlichen Klassen benutze.
Code:
public class Datenuebergabe {
public Datenuebergabe() {}
public static final Datenuebergabe INSTANCE = new Datenuebergabe();
public static Datenuebergabe getInstance() {
return INSTANCE;
}
public class Datenuebergabe {
private Datenuebergabe() {}
private static final Datenuebergabe INSTANCE = new Datenuebergabe();
public static Datenuebergabe getInstance() {
return INSTANCE;
}
}
Nun kannst Du per
Code:
Datenuebergabe.getInstance()
in deinen beiden Klassen auf diese Instanz zurück greifen. Wenn Du bei der einen ein set und bei der anderen ein get machst bekommst Du das gewünschte Ergebnis.