我最近一直在学习 Java,以寻找一种不会对 GUI 进行编码的编程语言(要求一种简单的方法来制作窗口和添加界面元素是不是太过分了?),我有点好奇动态和静态编程如何在 Java 中混合。Java 要求我将我的主类/入口点声明为:
public static void main(String[] args)...
在 main 中,我可以使用以下内容声明实例:
JFrame frame = new JFrame();
为什么会这样,而不是frame = new JFrame();
在 Java 中完全有效?
特别是,当我在精神上“解析”第一个时,我将其读作“框架,JFrame 的一个实例,是 JFrame 的一个新实例”。对我来说,这似乎有些多余。后者,我读为“框架是 JFrame 的新实例”似乎更合理。
继续前进,我经常在类的顶部附近定义它会经常使用的变量,尤其是常量或持久显示对象,所以当我创建一个简单的类时,我通常会声明类似public JFrame frame
.
正确实例化中的冗余JFrame frame = new JFrame()
是我可以删除这些声明而没有明显问题的原因吗?
public class Display {
//The line below can be deleted with no apparent difference
public JFrame frame;
public static void main(String[] args) {
/* Why do I need to declare the type of a variable I have
* already declared above? */
JFrame frame = new JFrame();
frame.setSize(800, 600);
frame.setVisible(true);
}
}
在我删除该声明的情况下,我是否正确地假设该框架成为主要方法的子方法?在这种情况下,将其声明为顶部会使其成为 Display 的子项?
总的来说,我想通过静态类来解释实例化。我真的希望我不是在问一个愚蠢的问题,但我发现在线“教程”通常采用演练的形式,描述代码的作用,而不是为什么要这样使用;基本上,我在其他地方找不到答案,我知道你们有很多知识。我真的很感激一个深思熟虑的回应,如果可能的话,在我的每个例子中解释如何与声明的“框架”进行交互。
我也会很高兴解释为什么 frame = new JFrame 是无效的,即使我public JFrame frame
在上面声明。
非常感谢您阅读本文并花时间回复^_^