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()时调用code>,在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
时,此
引用是对框架的引用
谢谢!这帮了我的忙。我无法提高投票率,没有足够的声誉,而被接受的答案更清楚一些。但是你也帮了我!