[英]How to update a variable in one class from another class
我意識到這可能是一個非常基本的問題,但我無法弄清楚。
說我有這個主要課程
public class Main{
public static void main(String[] args){
int a = 0;
AddSomething.addOne(a);
System.out.println("Value of a is: "+String.valueOf(a));
}
}
這是AddSomething
類和addOne()
方法
public class AddSomething{
public static void addOne(int a){
a++;
}
}
addOne
方法沒有添加任何內容
System.out.println("Value of a is: "+String.valueOf(a));
// Prints 0 not 1
我怎樣才能讓Add
類更新變量a
在Main
類?
addOne
接收的拷貝a
,所以它不能改變a
main方法的變量。
改變該變量的唯一方法是從方法返回一個值,並將其分配回a
:
a = Add.addOne(a);
...
public int addOne(int a){
return ++a;
}
這就是因為java中的原始類型按值傳遞給方法。 只有一種方法可以做你想要的是重新分配變量,例如:
public class Main{
public static void main(String[] args){
int a = 0;
a = Add.addOne(a);
System.out.println("Value of a is: "+String.valueOf(a));
}
}
和
public class AddSomething{
public static int addOne(int a){
return a++;
}
}
我知道,Eran的回答是你們所有人都需要的。 但只是為了表明另一種方式,發布這個答案。
public class Main
{
static int a = 0;
public static void main(String[] args)
{
AddSomething.addOne();
System.out.println("Value of a is: "+a);
}
}
在AddSomething
類中..
public class AddSomething
{
public static void addOne(){ Main.a++ };
}
AddSomething
必須與Main
類在同一個包中,因為int a
具有默認訪問修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.