什么是关键字“this”指的是它是否作为参数给出

时间:2016-02-25 16:57:33

标签: java this keyword

我知道何时对字段和构造函数使用关键字“this”但我不确定它何时作为参数传递

    import javax.swing.*;
    import java.awt.event.*;

    public class SimpleGui implements ActionListener {
        JButton button;

    public static void main (String[] args) {
        SimpleGui gui = new SimpleGui();
        gui.go();
    }

    public void go() {
        JFrame frame = new JFrame();
        button = new JButton("click me");

        button.addActionListener(this);

        frame.getContentPane().add(button);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent event) {
        button.setText("I've been clicked!");
    }
}

3 个答案:

答案 0 :(得分:6)

button.addActionListener(this);表示:

  • 为在button对象
  • 上执行的操作添加侦听器
  • 使侦听器成为上下文中SimpleGui的当前实例(SimpleGui碰巧实现ActionListener接口)

因此,单击该按钮时,应调用SimpleGui#actionPerformed

答案 1 :(得分:1)

每当按下按钮以获得回调时,我们需要将一个监听器附加到该按钮,在您的示例中使用以下行完成,

<强> button.addActionListener(本);

addActionListener()需要传递一个实现ActionListener接口的实例。

这里的SimpleGui是一个ActionListener,因为它实现了该接口。因此,在SimpleGui中,你正在写作,

<强> button.addActionListener(本);

这是实现ActionListener

的SimpleGui实例

答案 2 :(得分:0)

这是一个关键字,表示该类的实例, 在你的班级

 public class SimpleGui implements ActionListener {

this SimpleGui 的一个实例,也可以是实现 actionListener

的对象(任意)

如果您调用接受this的方法,那是因为 这个参数是SimpleGui类的一个对象,甚至更好,是一个实现 ActionListener 的对象(无论哪一个)。