Java 为什么main()是唯一执行的方法?
每当我运行我的程序时(它只包含main中的一个JFrame和另一个public void方法),它只运行main方法。我知道这是因为当我测试System.out.println(“测试”)时;在第二个方法中,它不会执行,但如果我执行main-in中的同一行代码,它将按预期执行Java 为什么main()是唯一执行的方法?,java,testing,methods,jframe,main,Java,Testing,Methods,Jframe,Main,每当我运行我的程序时(它只包含main中的一个JFrame和另一个public void方法),它只运行main方法。我知道这是因为当我测试System.out.println(“测试”)时;在第二个方法中,它不会执行,但如果我执行main-in中的同一行代码,它将按预期执行 package com.route.route; import javax.swing.JFrame; import javax.swing.JMenuBar; public class Window extends J
package com.route.route;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
public class Window extends JFrame {
private static final long serialVersionUID = 1L;
public void gfsdagfds(){
System.out.println("Hello");
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setTitle("route UNREALEASED 0.01");
frame.setIconImage(null);
frame.setResizable(false);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}看起来您没有调用任何其他方法。main()只是应用程序的入口点。您需要调用以下方法:
main(String[] args){
...
gfsdagfds()
...
}
您从未在
main()
中调用gfsdagfds()
方法。方法只有在从main()
调用时才会执行,因为它是从JVM调用的唯一方法。如果您在main()
内部调用gfsdagfds()
,您将在System.out
中看到“hello”,您没有调用第二个方法,因此它当然不会被执行
您将无法从
main
(静态)调用第二个方法(非静态)。您可以通过使用窗口
作为对象而不是JFrame
,来解决这个问题,然后您可以调用frame.gfsdagfds()
,您的期望是什么?只是执行它偶然发现的所有方法?…那么为什么它会随机执行方法呢?