Überschreiben von Variablen

Status
Nicht offen für weitere Antworten.

julchen81

Bekanntes Mitglied
Hallo!

Code:
public class OpenFiles {
    String sX = "";
    String sY = "";

    public void clearRow() {
        sX = "";
        sY = "";
    }

    public void readInputRow() {
        System.out.println("sX: " + sX + "sY: " + sY);
        sX = "natürlich";
        sY = "undJetzt";
        System.out.println("und noch mal: " + sX + sY);
        clearRow();
    }
}


In einer Klasse sind zwei Strings deklariert. Aus einer anderen Klasse heraus wird die Methode readInputRow() aufgerufen. Darin werden dann sX und sY gesetzt (habe den Code abgekürzt, natürlich werden andere Werte zugewiesen).
Anschließend werden diese Werte mit clearRow() wieder gelöscht. Wenn ich aber jetzt von meiner anderen Klasse erneut readInputRow() aufrufe, gibt mir die Zeile
System.out.println("sX: " + sX + "sY: " + sY);
wieder sX = "natürlich" und sY = "und Jetzt".

Warum greift mein clearRow() nicht? :shock: Ich habe versuchsweise schon in diese Methode
Code:
System.out.println("sX: " + sX);
System.out.println("sY: " + sY);
geschrieben, und mir werden die leeren Variablen ausgegeben. :shock:

Ich hoffe, ich konnte klar machen, was ich meine. Wenn nicht, dann poste ich noch den Original-Code. Ist halt mehr dann.
Kann mir jemand bitte helfen?

Viele Grüße,
Julia
 
Hi 😉

Funktioniert doch bestens.

Also, ich hab mal Dein Fragment erweitert um die statische main-Methode:

Code:
public class OpenFiles {

    String sX = "";

    String sY = "";

    public void clearRow() {
        sX = "";
        sY = "";
    }

    public void readInputRow() {
        System.out.println("sX: " + sX + "sY: " + sY);
        sX = "natürlich";
        sY = "undJetzt";
        System.out.println("und noch mal: " + sX + sY);
        clearRow();
    }

    public static void main(final String[] args) {
        final OpenFiles openFiles = new OpenFiles();
        openFiles.readInputRow();
        openFiles.readInputRow();
    }
}


Ergebnis in der Console:

Code:
sX: sY: 
und noch mal: natürlichundJetzt
sX: sY: 
und noch mal: natürlichundJetzt

Das ist also, was Du wolltest - soweit ich es verstanden habe. Was erhälst Du denn für eine Ausgabe?


Gruß
 
Hey,

vielen Dank für deine Idee! Aber ich möchte in diese Klasse keine Main-Methode schreiben, die befindet sich in einer anderen und das passt besser.

Komischerweise funktioniert's bei mir jetzt, wenn ich clearRow() nicht am Ende von readInputRow() aufrufe, sondern zu Beginn.
Keine Ahnung was da der Unterschied ist.
Aber Hauptsache, es funktioniert erstmal!

Liebe Grüße und noch einen schönen Nachmittag, :wink:
Julia
 
Kann es sein, dass du zwei unterschiedliche Instanzen deiner OpenFiles Klasse hast? Wenn du dir nicht sicher bist, schau dir nochmal die Grundlagen an.

Klasse, Objekt, static....
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben