首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这些构造器调用语句之间的区别?

这些构造器调用语句之间的区别?
EN

Stack Overflow用户
提问于 2014-02-07 06:48:40
回答 5查看 72关注 0票数 0
代码语言:javascript
复制
public class StudentFormMain {  
    public static void main(String[] args) {
        new StudentForm();
    }
}

二级和二级

代码语言:javascript
复制
public class StudentForm extends JFrame {
    public StudentForm(){
        setTitle("Admission Form");
        setSize(300,250);
        setVisible(true);   
    }
}

我的问题是

这些陈述之间有什么区别?

代码语言:javascript
复制
StudentForm studentform=new StudentForm();

代码语言:javascript
复制
new StudentForm()

第一条语句声明该类的Obj并调用构造器,但在第二条语句中,只有Constructor正在调用。

注:结果相同

代码语言:javascript
复制
super(""); set the title of the frame

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

也请区分不同的方法。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-07 06:59:36

守则:

代码语言:javascript
复制
StudentForm studentform = new StudentForm();

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

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

票数 1
EN

Stack Overflow用户

发布于 2014-02-07 06:53:51

代码语言:javascript
复制
new StudentForm();

上面的变化只调用一个构造函数。

代码语言:javascript
复制
StudentForm studentform=new StudentForm();

当您想要访问类中的构造函数以外的其他方法时,会使用上述变化。在这两种情况下,不管您是否使用studentform对象,构造器都将被调用。

例如,如果类具有名为methodOne()的其他方法

代码语言:javascript
复制
public class StudentForm extends JFrame {
    public StudentForm(){
        setTitle("Admission Form");
        setSize(300,250);
        setVisible(true);   
    }
    public void methodOne()
    {
         System.out.println("In method one..");
    }
}

然后您可以使用以下方法调用它:

代码语言:javascript
复制
StudentForm studentform=new StudentForm();
studentform.methodOne();
票数 1
EN

Stack Overflow用户

发布于 2014-02-07 06:58:54

new关键字表示StudentForm对象的instantiation/creation。所以

代码语言:javascript
复制
new StudentForm()

提供StudentForm的实例或简单的StudentForm对象。

唯一的区别是

代码语言:javascript
复制
StudentForm studentform = new StudentForm();

and 

new StudentForm();

前者为新的reference对象提供了一个StudentForm。引用为studentForm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21621096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档