public static void methode1(){
int x = 1;
int y = 2;
}
public static void methode2(){
int z = x + y
//hier sollen x und y aus der methode1 aufgerufen werden
System.out.println(z);
}
public static void main(String[] args) {
methode2();
}
Die Antwort ist einfach: Du kannst aus einer Methode nicht auf die lokalen Variablen einer anderen Methode zugreifen.
Wenn Du mit irgendwelchen Werten etwas machen willst, dann musst Du diese so speichern, dass diese zugreifbar sind. Dazu kann man z.B. Klassen- und Instanzvariablen verwenden.
Die Antwort ist einfach: Du kannst aus einer Methode nicht auf die lokalen Variablen einer anderen Methode zugreifen.
Wenn Du mit irgendwelchen Werten etwas machen willst, dann musst Du diese so speichern, dass diese zugreifbar sind. Dazu kann man z.B. Klassen- und Instanzvariablen verwenden.
Und wenn es nicht-statisch und objektorientiert sein soll, o wie es Konrad immer gerne predigt:
Code:
public class Beispiel {
int x, y;
public static void main(String[] args){
Beispiel test=new Beispiel();
setValues();
System.out.println(addValues());
}
public void setValues() {
x = 1;
y = 2;
}
public int addValues() {
return x + y;
}
}
main ist hier die einzige statische Methode (muss sie auch sein!) und erzeugt ein objekt der Beispielklasse, mit dem du die Methoden der KKlasse dann benutzen kannst.
Wobei das vielleicht noch etwas zu kompliziert für deinen aktuellen Stand ist, aber früher oder später ist das die von konrad hochgelobte objektorientierte Variante.
Da nur aufpassen - die Instanzmethoden müssen dann auch auf der Instanz aufgerufen werden (vermutlich einfach nur der typische Fehler, wenn man Code im Forum schreibt bzw. copy&paste nutzt - wie es auch mir regelmäßig passiert):
Wichtiger als das "wie" wäre meiner Meinung nach hier erst mal das "warum".
Handelt es sich um so was wie einen Zähler für die Klasse unabhängig von der Instanz? Static
Oder gar eine Konstante? final static
Eine Eigenschaft des Objekts, in dem sich die Methode befindet? nicht static
Die Vorgehensweise hängt stark davon ab, wozu die Variable dient, bzw. ob und wo sie irgendwo dazugehört.
Die technische Umsetzung ergibt sich dann von selbst.
Wenn eine Variable lokal in einer anderen Methode erstellt wird, dann heißt das doch, dass sie laut Design nur dort gebraucht wird.
Ansonsten würde man sie nicht dort erstellen, sondern als Klassenvariable des Objekts, dessen Eigenschaft sie ist.
Meine random Vermutung wäre einfahc mal dass der Threadersteller das Thema Klassen und so noch gar nicht hatte, bisher jeden Code in der Main methode direkt ausgeführt hat und nun in der main Methode ne Variable definiert hat, mit der gern auch in anderen MEthoden gearbeitet hätte.
Vermute ich mal so.
Lösung ist halt dann eine Klasse mit statischen oder auch nichtstatischen Methoden und Attributen.
@KonradN Hast natürlich völlig recht, solche offensichtlichen Patzer passieren wenn man im Webseiteneditor schnell was zusammenbauen will