有人可以解释这是如何工作的吗?

2024-01-08

我有这行代码。

class ButtonPanel extends JPanel implements ActionListener
{  
    public ButtonPanel()
    {  
        yellowButton = new JButton("Yellow");

它有效,我认为Java需要在创建像这样的jButton实例之前知道yellowButton的类型?

JButton yellowButton = new JButton("Yellow");

有人可以解释这是如何工作的吗?


如果它真的有效,那就意味着yellowButton可能是您没有注意到的类字段。

再检查一下班级。你可能拥有的更像是这样的:

class ButtonPanel extends JPanel implements ActionListener
{  
    private JButton yellowButton;

    public ButtonPanel()
    {  
        yellowButton = new JButton("Yellow");
        /* this.yellowButton == yellowButton */

        /* etc */
    }
}

如果一个变量foo在方法作用域中找不到,它会自动回退到this.foo。相比之下,某些语言(例如 PHP)不具备这种灵活性。 (对于 PHP 你总是必须做$this->foo代替$foo访问类字段。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有人可以解释这是如何工作的吗? 的相关文章

随机推荐