我们可以在 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