Java 中的 main 方法必须是静态的吗?
Does the main method in Java have to be static?
主要方法(您在 class 中的 Java 请求)是否必须是静态的?例如我有这个代码
public class Sheet {
public static void main(String[] args) {
myMethod();
}
public void myMethod() {
System.out.println("hi there");
}
}
这是给我的错误
cannot make a static reference to the non-static call method from main
如果我说清楚了,我从 main
方法调用的任何方法都必须是 static,并且我从 调用的每个方法]static 方法必须是 static.
为什么我的整个 class(如果我们更进一步,我的整个程序)和方法必须是静态的?我该如何避免这种情况?
并非所有方法都必须是静态的,只有应用程序的主要入口点。所有其他方法都可以保持非 static
,但您需要使用 class 的引用才能使用它们。
您的代码如下所示:
public class Sheet {
public static void main(String[] args) {
Sheet sheet = new Sheet();
sheet.myMethod();
}
public void myMethod(){
System.out.println("hi there");
}
}
此处解释了您的疑虑(无需在此处复制所有信息):
- Why is the Java main method static?
- What does the 'static' keyword do in a class?
- In laymans terms, what does 'static' mean in Java?
您的 main
方法必须是 static
,因为这是您程序中该 运行 配置的单一入口点。
static
方法绑定到 class,因此它无法知道 class 的单个实例。
您可以通过实例化您的 Sheet
class:
来调用 myMethod
new Sheet().myMethod();
创建实例:
public class Sheet {
public static void main(String[] args) {
Sheet sheet = new Sheet();
sheet.myMethod();
}
public void myMethod(){
System.out.println("hi there");
}
}
是的,main 方法必须是静态的,因为我们不会为 main 方法创建任何对象。并且在class加载的时候可以直接调用静态方法。由于它们是在 class 加载时加载的,因此我们不必为其创建任何对象!!
而我们知道,static主要是为了内存管理。所有静态方法和变量都可以直接使用 class 名称访问。当然我们可以为静态方法和变量创建对象来访问它们。但这是一种内存浪费。
并不是所有的方法都需要是静态的。根据您指定的应用程序,我们可以使用静态方法。
主要方法(您在 class 中的 Java 请求)是否必须是静态的?例如我有这个代码
public class Sheet {
public static void main(String[] args) {
myMethod();
}
public void myMethod() {
System.out.println("hi there");
}
}
这是给我的错误
cannot make a static reference to the non-static call method from main
如果我说清楚了,我从 main
方法调用的任何方法都必须是 static,并且我从 调用的每个方法]static 方法必须是 static.
为什么我的整个 class(如果我们更进一步,我的整个程序)和方法必须是静态的?我该如何避免这种情况?
并非所有方法都必须是静态的,只有应用程序的主要入口点。所有其他方法都可以保持非 static
,但您需要使用 class 的引用才能使用它们。
您的代码如下所示:
public class Sheet {
public static void main(String[] args) {
Sheet sheet = new Sheet();
sheet.myMethod();
}
public void myMethod(){
System.out.println("hi there");
}
}
此处解释了您的疑虑(无需在此处复制所有信息):
- Why is the Java main method static?
- What does the 'static' keyword do in a class?
- In laymans terms, what does 'static' mean in Java?
您的 main
方法必须是 static
,因为这是您程序中该 运行 配置的单一入口点。
static
方法绑定到 class,因此它无法知道 class 的单个实例。
您可以通过实例化您的 Sheet
class:
myMethod
new Sheet().myMethod();
创建实例:
public class Sheet {
public static void main(String[] args) {
Sheet sheet = new Sheet();
sheet.myMethod();
}
public void myMethod(){
System.out.println("hi there");
}
}
是的,main 方法必须是静态的,因为我们不会为 main 方法创建任何对象。并且在class加载的时候可以直接调用静态方法。由于它们是在 class 加载时加载的,因此我们不必为其创建任何对象!!
而我们知道,static主要是为了内存管理。所有静态方法和变量都可以直接使用 class 名称访问。当然我们可以为静态方法和变量创建对象来访问它们。但这是一种内存浪费。
并不是所有的方法都需要是静态的。根据您指定的应用程序,我们可以使用静态方法。