Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在哪里定义变量?_Java_Variables - Fatal编程技术网

Java 在哪里定义变量?

Java 在哪里定义变量?,java,variables,Java,Variables,因此,在我的小Java程序中,我在main方法中声明了所有变量,但我希望能够从类中的任何位置修改它们,因此我在类体中声明了它们。现在我不能再在main方法中修改它们了。声明变量的解决方案是静态的吗?如果我这样做,我是否仍然能够从主方法内部更改这些变量 public class MainGUI { int num1= 1366, num2= 528, num3= 482, sum; // declare these static? public static void main(Stri

因此,在我的小Java程序中,我在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中的静态方法访问非静态变量,必须创建类的实例

或者将实例变量设置为静态,这样您就可以直接访问它们,而无需使用静态方法中的任何实例

  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访问


请参阅此链接,了解如何更好地理解

您在类中定义变量。@lightice11欢迎您。请阅读其他人提到的变量访问。感谢您指出:无需在类本身内部调用类名
  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; 
      }
    }
      sum =  MainGUI.num1 + MainGUI.num2 + MainGUI.num3; 
public class MainGUI
{
  static int num1= 1366;
..
..

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