当前位置: 首页 > 面试题库 >

内部类中的构造方法(实现接口)

艾嘉石
2023-03-14
问题内容

我将如何为正在实现接口的内部类编写构造函数?我知道我可以上一门全新的课,但是我认为必须有一种方法可以做到这一点:

JButton b = new JButton(new AbstractAction() {

    public AbstractAction() {
        super("This is a button");                        
    }


    public void actionPerformed(ActionEvent e) {
        System.out.println("button clicked");
    }
});

当我输入此内容时,它不会将AbstractAction方法识别为构造函数(编译器要求返回类型)。有人有主意吗?


问题答案:

只需在扩展类的名称后面插入参数即可:

JButton b = new JButton(new AbstractAction("This is a button") {

    public void actionPerformed(ActionEvent e) {
        System.out.println("button clicked");
    }
});

另外,您可以使用初始化块:

JButton b = new JButton(new AbstractAction() {

    {
       // Write initialization code here (as if it is inside a no-arg constructor)
       setLabel("This is a button")
    }

    public void actionPerformed(ActionEvent e) {
        System.out.println("button clicked");
    }
});


 类似资料:
  • 上一个小节我们学习了 Python 的类属性和实例属性的知识点,这个小节我们还是会学习关于类的知识。这节课我们会学习类的构造方法、析构方法和实例方法。 1. 实例方法 1.1 定义 实例方法是用于访问对象实例属性的方法,语法如下: class 类: def 实例方法(self): self.属性 实例方法定义在类中,它的第一个参数 self 指向调用该方法的对象,在实例方

  • 本文向大家介绍Java中构造器内部的多态方法的行为实例分析,包括了Java中构造器内部的多态方法的行为实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中构造器内部的多态方法的行为操作。分享给大家供大家参考,具体如下: 这篇文章主要讨论的是,若在一个构造器中调用正在构造的对象的某个动态绑定的方法时会出现的情况。在此之前,我们需要知道构造器是如何在复杂的层次结构中运作的,尽管构

  • 我有两个类:Date和Person Person有Date类的两个属性 案例1 类是与Person类分开的类。我有这段代码正常工作: 案例2:内部类(赋值要求) 我把作为Person的私有内部类 现在,上面的构造函数代码不再工作了。以下是错误消息: 说明资源路径位置类型由于某些中间构造函数调用人员,类型Person的封闭实例不可用。java/Wk03_Ch10_文件IO_Ch13_接口/Wk03_

  • 本文向大家介绍php实现parent调用父类的构造方法与被覆写的方法,包括了php实现parent调用父类的构造方法与被覆写的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现parent调用父类的构造方法与被覆写的方法。分享给大家供大家参考。具体分析如下: 覆写:被重新设计。 在子类中定义构造方法时,需要传递参数给父类的构造方法,否则我们得到的可能是一个构造不完整的对象。 要

  • 我在班里学习。出于好奇,我扩展了具有参数化构造函数的内部类。但是当我编写super(inti)来调用它时,代码不会编译。 因为内部类是外部类的一部分(成员),必须通过外部类访问它们。如何调用测试类的超级构造函数。 编译错误是:由于某些中间构造函数调用,没有外部类型的封闭实例可用

  • 《Java》中内在类的确切目的及其创作方法。如果我在类中创建方法而不是在内部类中创建那些方法,我能得到相同的行为吗? 我们既可以访问内部类方法,也可以访问外部类之外的实例方法。那么内类在Java的确切目的是什么呢?有没有一种情况/可能性,没有内在的类,我们就无法生存?