2016-05-03 10 views
-1
public class Main{ 
. 
. 
. 
Class class = new Class(); 
class.method(class.variableFromAnotherClass); 
sysout(class.variableFromAnotherClass) 
} 

public class Class{ 
Int variableFromAnotherClass=0; 

method(int var){ 
    var=1; 
    } 
} 

Ausgang:Wie manipuliert man eine Variable aus einer anderen Klasse mit einem Methodenaufruf von dieser anderen Klasse?

0 

Im mit einer Situation zu tun, ähnlich dem oben, außer mit mehr Variablen in meiner Version von "Class". Mein Problem ist, dass die Methode innerhalb von "Class" nichts mit der übergebenen Variable zu tun hat. Warum passiert das? Liegt es daran, dass die übergebene Variable bereits zur Klasse gehört? Irgendwelche Vorschläge zu Was soll ich tun, um dieses Problem zu lösen?

+0

^^^^^ genaue Betrogene bitte Leute stimmen. Außerdem kann der Code nicht einmal kompiliert werden ... – Tunaki

+0

Es macht nichts mit 'var'. Sie müssen 'method()' setzen, um entweder einen Wert zurückzugeben oder eine Instanzvariable in 'Class' zu ändern. –

Antwort

1

Das Problem, das Sie zugewandte Seite mit Java vorbei Variablen durch Referenz statt durch Wert zu tun. Wenn variableFromAnotherClass in class.method(int var) übergeben wird, wird die int var Variable aus einer Kopie von variableFromAnotherClass erstellt. Wenn also var=1 aufgerufen wird, aktualisiert es die Kopie von variableFromAnotherClass und nicht variableFromAnotherClass selbst.

Wenn Sie in der Lage sein möchten, variableFromAnotherClass von Main zu ändern, können Sie class.variableFromAnotherClass=1; statt method anrufen.

Ein anderer wird mit Getter und Setter professioneller Art und Weise Variablen der Aktualisierung:

public class Class { 

    int variableFromAnotherClass; 

    public void getVar() { 
     return variableFromAnotherClass; 
    } 

    public int setVar(int var) { 
     this.variableFromAnotherClass = var; 
    } 

} 
0

bitte machen sowohl das Verfahren und die variable statischen

public class Class{ 
static Int variableFromAnotherClass=0; 

static method(int var){ 
    var=1; 
    } 
} 
0

Try Java-Getter und Setter und Instanzvariablen einer anderen Klasse als privat, die Verkapselung hinzufügen.

Verwandte Themen