Java 从类内调用方法与#x27;方法代码还是类的实例?

Java 从类内调用方法与#x27;方法代码还是类的实例?,java,object,methods,call,Java,Object,Methods,Call,我这里有一段代码,我不确定两个命令的作用: //this bit is the body of the main method //lots of stuff omitted project frame = new project(); frame.createGUI(); private void createGUI() { setDefaultCloseOperation(EXIT_ON_CLOSE); panel = new JPanel(); } 所以当frame.c

我这里有一段代码,我不确定两个命令的作用:

//this bit is the body of the main method
//lots of stuff omitted
project frame = new project();
frame.createGUI();

private void createGUI() {
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    panel = new JPanel();
}
所以当
frame.createGUI()时,在
createGUI()中的两个命令会发生什么?
是吗

还是完全是别的原因? 我是Java的新手,今年开始学习12年级的计算机科学,但我有点领先于课堂

谢谢你的时间

setDefaultCloseOperation(EXIT_ON_CLOSE);
设置用户关闭窗口时发生的操作(JFrame)。该方法适用于JFrame。如果类扩展了JFrame,则
setDefaultCloseOperation(在关闭时退出)
很好,因为它将调用JFrame的方法,如果不是,那么它应该是
frame.setDefaultCloseOperation(在关闭时退出)但如果project扩展JFrame,这将起作用

panel = new JPanel();
这将创建一个新面板。

frame.createGUI()
表示您在上面定义了一行的对象
frame
调用方法
createGUI()

setDefaultCloseOperation(关闭时退出)这意味着当用户单击窗口左上角的X按钮时,将关闭该窗口

您可以尝试一点并删除
setDefaultCloseOperation(在关闭时退出)createGUI()
方法中选择code>,然后查看发生了什么


如果你想了解更多,看看你的两个选择其实是一样的。在这两种情况下,您都在调用所创建的
frame
对象的方法。在类的方法中,您不必明确地说:
this.doSomething()
this.myField=123
,您只需编写
doSomething()
myField=123
。从类外的方法中,您必须指明要为哪个实例调用该方法。

Java中的每个非静态方法都有一个名为this
的隐藏参数。它的值是调用中点前面的对象。在方法体内部,其他方法的调用隐式地将
这一点。
放在它们前面。如果变量不能在本地解析,那么变量的使用也是如此。如果
引用是显式的,则您的方法如下所示:

private void createGUI(project this) {
    this.setDefaultCloseOperation(this, EXIT_ON_CLOSE);
    this.panel = new JPanel();
}
frame.createGUI(frame);
在主方法中调用
createGUI
时,实际发生的情况如下:

private void createGUI(project this) {
    this.setDefaultCloseOperation(this, EXIT_ON_CLOSE);
    this.panel = new JPanel();
}
frame.createGUI(frame);

运行
createGUI
时,
引用是对
框架的引用

谢谢!这帮了我的忙。我无法提高投票率,没有足够的声誉,而被接受的答案更清楚一些。但是你也帮了我!