对不起,也许很简单,但是我无法解释。有以下代码(摆动):
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继承引起的,但是怎么办?
答案 0 :(得分:4)
所有这些调用都发生在实例的上下文中。如果您仅呼叫setSize
,则与说this.setSize
相同。 (如果您尝试以静态方法调用setSize
,这特别意味着它未链接到特定实例,则将收到错误。)
答案 1 :(得分:0)
在构造扩展另一个类的类的实例时,会先调用父构造函数,设置它所需的任何内容,然后再调用本地构造函数(隐式地或通过调用ArrayList<List<Something>>
构造函数的第一行)。
因此,由于console.log
是-Post.updateOne({ _id: req.params.id }, { like , _id: req.params.id })
.then(() => res.status(201).json({ message: 'Great!'}))
.catch(error => res.status(400).json({ error }));
(扩展了类),因此super()
的东西将在执行Sandbox2
构造函数中的代码时准备就绪。
答案 2 :(得分:0)
类SandBox2
扩展了JFrame
意味着SandBox2
是-JFrame
类。 SandBox2
类从超类JFrame
继承以下方法。因此可以称为add(b)
add(b);
add(tf);
add(l);
setSize(400,400);
setLayout(null);
setVisible(true);
根据Doc,为方便起见,add
及其变体remove
和setLayout
已被覆盖以根据需要转发到contentPane。这意味着您可以编写:frame.add(child);
SandBox2
使用继承,该类允许通过该继承来继承另一个类的功能(字段和方法)。除了超类的字段和方法之外,子类还可以添加自己的字段和方法。