gpt4 book ai didi

java - 我看到很多object.addActionListen(this),它是什么意思?

转载 作者:行者123 更新时间:2023-12-01 11:29:16 26 4
gpt4 key购买 nike

例如:

import acm.gui.*;
import acm.program.*;
import java.awt.event.*;
import javax.swing.*;
import acm.graphics.*;

public class TemperatureConverter extends Program {
private IntField fahrenheitField;
public void init() {
fahrenheitField = new IntField(32);
fahrenheitField.addActionListener(this);
}
}

所以假设我知道TemperatureConverterActionListener 的子类,什么是 fahrenheitField.addActionListener(this);实际上是什么意思?因为我想“啊,整个屏幕现在显示了我的TemperatureConverter的一个实例”,将它传递给它的fahrenheitField有什么意义?作为ActionListener

最佳答案

不知道你的类(class)是什么,但这应该可以澄清困惑

  1. 如果 IntField 或其任何父类(super class)声明 addActionListener(ActionListener al) 方法,那么您需要向其传递“一个 ActionListener ”。
  2. ActionListener 是一个接口(interface),因此上一点中的“ActionListener”是它或其任何一个的任何类父类(super class)实现 ActionListener 接口(interface)或其任何子接口(interface)
  3. 如果“ActionListener”类与调用 addActionListener 的类相同,则 this 关键字引用当前类的实例。

在以下示例中,MyClass 是“一个 ActionListener”:

  • 类直接实现接口(interface)

    class MyClass implements ActionListener
  • 类直接实现子接口(interface)

    class MyClass implements SubActionListener
    interface SubActionListener extends ActionListener
  • 类是直接实现接口(interface)的类的子类

    class MyClass extends SuperMyClass
    class SuperMyClass implements ActionListener
  • 类是直接实现子接口(interface)的类的子类

    class MyClass extends SuperMyClass
    class SuperMyClass implements SubActionListener
    interface SubActionListener extends ActionListener

在这些示例中,SuperMyClassMyClass 的直接父类(super class),但它可以位于继承层次结构中的任何位置。界面也是如此。

还有一些冗余的实现,例如

class MyClass extends SuperMyClass implements ActionListener
class SuperMyClass implements ActionListener

或其他奇怪的组合。

TemperatureConverter is a subclass of ActionListener

语义,但类不能是接口(interface)的子类(有趣的是,相反的是,不是真的)。​​

关于java - 我看到很多object.addActionListen(this),它是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30554315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com