【问题标题】:Where do I define my variables? [closed]我在哪里定义我的变量? [关闭]
【发布时间】:2012-11-10 23:14:32
【问题描述】:

所以在我的小 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"
  }
}

【问题讨论】:

  • 在类中定义变量。

标签: java variables


【解决方案1】:

您必须创建一个您的类的实例,以便从您在 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; 

请参考此链接以更好地理解different types of variable access

【讨论】:

  • @lightice11 欢迎您。并请阅读其他人提到的变量访问。
【解决方案2】:
public class MainGUI
{
  static int num1= 1366;
..
..

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

【讨论】:

  • 感谢您指出:)
  • 不需要在类本身内部调用类名
猜你喜欢
  • 2014-02-11
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多