-5

そのため、私の小さなJavaプログラムでは、mainメソッドですべての変数を宣言しましたが、クラス内のどこからでも変数を変更できるようにしたかったので、代わりにクラス本体で宣言しました。これで、mainメソッド内でそれらを変更することができなくなりました。変数を静的に宣言するための解決策はありますか?そうする場合でも、mainメソッド内からこれらの変数を変更できますか?

public class MainGUI
{
  int num1= 1366, num2= 528, num3= 482, sum; // declare these static?

  public static void main(String args[])
  {
    sum = num1 + num2+ num3; //compiler tells me "non-static varable cannot be refrenced from a static context"
  }
}
4

2 に答える 2

2

Javaの静的メソッドから非静的変数にアクセスするには、クラスのインスタンスを作成する必要があります。

public class MainGUI
{
  int num1= 1366, num2= 528, num3= 482, sum; // declare these static?

  public static void main(String args[])
  {
MainGui m = new MainGUI();
    sum = m.num1 + m.num2+ m.num3; 
  }
}

または、インスタンス変数を静的にして、静的メソッドからインスタンスなしで直接アクセスできるようにします。

  public class MainGUI
    {
      static int num1= 1366, num2= 528, num3= 482, sum; // declare these static?

      public static void main(String args[])
      {
        sum = num1 + num2+ num3; 
      }
    }

ただし、慣例により、静的メソッドの静的変数にはclassname.variablenameを使用してアクセスする必要があります。

      sum =  MainGUI.num1 + MainGUI.num2 + MainGUI.num3; 

さまざまなタイプの可変アクセスの理解を深めるには、このリンクを参照してください

于 2012-11-10T23:16:16.560 に答える
0
public class MainGUI
{
  static int num1= 1366;
..
..

  public static void main(String args[])
  {
   MainGUI.sum = MainGUI.num1 + MainGUI.num2+ MainGUI.num3; 
  }
}
于 2012-11-10T23:17:52.173 に答える