java - 这些构造函数调用语句之间的区别?

标签 java swing jframe

public class StudentFormMain {  
    public static void main(String[] args) {
        new StudentForm();
    }
}

和二等

public class StudentForm extends JFrame {
    public StudentForm(){
        setTitle("Admission Form");
        setSize(300,250);
        setVisible(true);   
    }
}

我的问题是

这些说法有什么区别

StudentForm studentform=new StudentForm();

new StudentForm()

第一个语句声明该类的 Obj 并调用构造函数,但在第二个语句中仅调用构造函数。

注意:结果相同

super(""); set the title of the frame

因为它正在调用父类(super class)构造函数。 我们还可以使用setTitle("")方法设置标题

请区分方法。

最佳答案

代码:

StudentForm studentform = new StudentForm();

构造一个新的StudentForm实例,并将对该实例的引用分配给变量studentform。以便稍后可以调用 StudentForm 实例的方法,例如 studentform.addContainerListener(xxx)

但是代码new StudentForm()只是调用构造函数来创建一个新的对象实例,但不保存对该实例的引用。

关于java - 这些构造函数调用语句之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21621096/

相关文章:

java - 需要有关应用程序架构的建议

java - layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) 方法中的 offsets.length 或 spans.length 是什么?

java - 在Java中设置对话框的顶部对话框

java - JFileChooser 对话框,搞砸了

java - 迭代对象列表、获取属性的最佳方法

java - 如何使用 JAXB 从给定的 XML 创建 POJO

java - 从 JOptionPane 获取值并使用它们创建类的新实例

java - 需要简单的方法来修改 JTable 使用的 toString()

java - 使用 JLabel 和 ArrayList 中的 java 变量的新行

java - 如何从 Eclipse java 项目中删除 Maven?