我们可以在 Java 的方法中声明静态变量吗?

java 8object oriented programmingprogramming

静态字段/变量属于类,它将与类一起加载到内存中。您可以在不创建对象的情况下调用它们。(使用类名作为引用)。整个类中只有一个静态字段的副本可用,即静态字段的值在所有对象中都是相同的。您可以使用 static 关键字定义静态字段。

示例

public class Sample{
   static int num = 50;
   public void demo(){
      System.out.println("Value of num in the demo method "+ Sample.num);
   }
   public static void main(String args[]){
      System.out.println("Value of num in the main method "+ Sample.num);
      new Sample().demo();
   }
}

输出

Value of num in the main method 50
Value of num in the demo method 50

方法中的静态变量

方法中的变量是局部变量,其范围在方法内,并且在方法执行后被销毁。即您不能在当前方法之外使用局部变量,这与类/静态变量的定义相矛盾。因此,在方法内声明静态变量是没有意义的,如果您仍尝试这样做,将产生编译时错误。

示例

在下面的 Java 程序中,我们试图在方法内声明静态变量

import java.io.IOException;
import java.util.Scanner;
public class Sample {
   static int num;
   public void sampleMethod(Scanner sc){
      static int num = 50;
   }
   public static void main(String args[]) throws IOException {
      static int num = 50;
   }
}

编译时错误

如果您尝试执行上述程序,它会产生以下错误 −

Sample.java:6: error: illegal start of expression
   static int num = 50;
  ^
Sample.java:9: error: illegal start of expression
   static int num = 50;
^
2 errors

相关文章