java - 我的代码中的 'this' 关键字指的是什么?

标签 java this instance keyword

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;

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

public class CursorClass implements ActionListener{
        JButton btn;
        JFrame frame;

    public static void main(String[] args) {
        CursorClass cc = new CursorClass();
        cc.launchButton();
    }

    public void launchButton(){
        frame = new JFrame("Main Window");
        frame.setSize(400, 400);

        btn = new JButton("Close Main Window");
        btn.setSize(100,100);

        btn.addActionListener(this); // <-------- 

        JPanel pnl = new JPanel();
        pnl.add(btn);

        frame.add(pnl);
        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent event){
        System.out.print("Exiting..");
        System.exit(0);
    }
}

正如您在 launchButton 方法中所看到的.. btn.addActionListener(this) 函数..

什么是this?指的是?

它是指整个 CursorClass 吗? 我在这里有点困惑。我无法理解传递给按钮对象的内容。我知道我向它添加了 ActionListener .. 现在按钮(它是事件源)将在单击时响应按钮但在该方法中添加 this ..我无法看看 this 是什么。我知道最常见的答案是 this 指的是当前对象,等等。 但是我需要一些更具体的东西。我写的这个类是否被认为是 this

最佳答案

你的 CursorClass工具 ActionListener . this指的是 CursorClass 的当前实例.本质上,代码将自身(“this”对象)添加为 Action 监听器。

它引用 CursorClass 实例的原因是因为它是从 launchButton 调用的,这是 CursorClass 中的一种方法.

关于java - 我的代码中的 'this' 关键字指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491318/

相关文章:

javascript - V8 javascript : chrome vs node. js - 'this' 上下文中的差异

javascript - 如何通过 anchor 链接将 `this`对象传递给function并将其转换为jQuery对象?

java - 如果 Java 类仅包含静态方法和字段,那么它们是否具有机器 (JVM) 级别的实例?

java - 你能告诉我这个程序是如何运作的吗?

java - 在 Java 中读取 JSON 文件的最简单方法?

java - log4j 不压缩日志文件

java - LWJGL如何存储它的matrix3f数据?

c++ - 我什么时候应该使用 this->functionname() 而不是 classname::functionname() 来调用成员函数?

c# - 对象实例内部运行的 main 与纯静态有什么区别?

java - 如何使用 eclipselink 在基于多模式的 Multi-Tenancy Web 应用程序中添加缺失的列