抱歉,也许这很简单,但我无法解释这一点。有以下代码( Swing ):
public class Sandbox2 extends Frame implements ActionListener {
JTextField tf; JLabel l; JButton b;
Sandbox2() {
tf=new JTextField();
...
//there is what i can`t understand
add(b);add(tf);add(l);
setSize(400,400);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
...
}
public static void main(String[] args) {
new Sandbox2();
}
}
首先,我创建一个按钮、文本字段等,然后将其添加到框架中。但是,如果在没有框架实例的情况下调用所有方法、add()、setSize()...,它会如何工作?
我知道这是由于 Frame 继承造成的,但是如何实现呢?
最佳答案
所有这些调用都发生在实例的上下文中。如果您只调用 setSize
,则与 this.setSize
相同。 (如果您尝试在静态方法中调用 setSize
,这具体意味着它未链接到特定实例,那么您将收到错误。)
关于java - 为什么可以在没有实例的情况下调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59708539/