簡體   English   中英

如何從另一個類更新一個類中的變量

[英]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類更新變量aMain類?

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM