1

我正在努力学习 Java。

public class MyFrame extends JFrame implements ActionListener{

    JButton button;

    JLabel label;

    MyFrame(){
        ImageIcon icon = new ImageIcon("point.png");

        ImageIcon icon2 = new ImageIcon("face.png");

        label = new JLabel();

        label.setIcon(icon2);

        label.setBounds(150, 250, 150, 150);

        label.setVisible(false);

        button = new JButton();

        button.setBounds(100, 100, 250, 100);

        button.addActionListener(this);

        button.setText("I'm a button!");

在这个类中,我不知道在构造函数中声明按钮属性的意义。为什么我不能全局声明属性?

4

1 回答 1

1

在您的代码中,您将它们声明为类的字段。您在构造函数中分配/实例化它们。因为在实例化该类的 Object 时会调用构造函数,所以您希望在创建 Frame 后立即设置这些按钮和标签。此外,您还会在哪里调用标签和按钮 ( setIcon, setBounds, etc) 的方法来设置它们的属性?你可以把它放在一个单独的方法中,但是你必须在构造函数中调用那个方法。这也只是编写可读代码的问题。如果我正在跟踪代码并创建了某个类的新对象,我可以查看构造函数以查看正在运行的代码。

因此,在创建对象时需要运行的任何代码都会进入该对象的适当构造函数中。

于 2021-09-01T13:38:07.093 回答