这是匿名内部类的变体吗?

发布于 2024-11-16 16:09:46 字数 271 浏览 3 评论 0原文

这是一个例子

JPanel panel = new JPanel(){
    @Override
    protected void paintComponent(Graphics g){
        // do stuff
    }

    @Override
    public Dimension getPreferredSize(){
        // do stuff
    }
};

这只是匿名内部类的变体,还是完全是别的东西?

Here is an example

JPanel panel = new JPanel(){
    @Override
    protected void paintComponent(Graphics g){
        // do stuff
    }

    @Override
    public Dimension getPreferredSize(){
        // do stuff
    }
};

Would this just be a variation of an anonymous inner class, or is it something else entirely?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

神也荒唐 2024-11-23 16:09:46

是的,这是一个匿名内部类

Yes that is an anonymous inner class

暖风昔人 2024-11-23 16:09:46

您可能对该类的匿名性感到困惑,因为乍一看,您似乎正在将 panel 定义为 JPanel 的实例。然而,这不是你正在做的。相反,您定义 JPanel 的子类,这是一个新类,并创建面板作为该新子类的实例。这个新班级的名称是什么?好吧,它没有一个,因此这就是它匿名的原因!

You may be confused about the anonymity of the class because at first blush it looks like you're defining panel to be an instance of JPanel. However, that's not what you are doing. Instead you are defining a sub-class of JPanel, which is a new class and creating panel to be an instance of this new sub-class. What is the name of this new class? Well, it doesn't have one and hence that's what makes it anonymous!

眼眸 2024-11-23 16:09:46

那是一个匿名内部类。

That is an anonymous inner class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文