Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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 为什么main()是唯一执行的方法?_Java_Testing_Methods_Jframe_Main - Fatal编程技术网

Java 为什么main()是唯一执行的方法?

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

每当我运行我的程序时(它只包含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 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()

,您的期望是什么?只是执行它偶然发现的所有方法?…那么为什么它会随机执行方法呢?