尽管我做了一些广泛的搜索,但我遇到了一些代码,但无法理解它的某些方面!
我的问题是:为什么在方法调用中间使用括号?
package com.zetcode;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class QuitButtonExample extends JFrame {
public QuitButtonExample() {
initUI();
}
private void initUI() {
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(null);
JButton quitButton = new JButton("Quit");
quitButton.setBounds(50, 60, 80, 30);
quitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
panel.add(quitButton);
setTitle("Quit button");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
QuitButtonExample ex = new QuitButtonExample();
ex.setVisible(true);
}
});
}
}
我指的是getContentPane().add(panel);
陈述。我知道它的作用,但不太明白它是如何工作的。我是 Java 新手,有 OO 的基础知识,如类字段、类方法、实例字段、实例方法、内部类,但就是这个。
这就是通俗的说法,叫做方法链接, 好像。
getContentPane().add(panel);
解析为
Container c = this.getContentPane();
c.add(panel);
括号表示方法调用,其返回值就地用作this
下一个方法调用的对象(add
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)