java 构造函数什么时候被调用执行

lihongxu2010 2010-11-01 06:11:42
class M {
M() {
System.out.println("Hello world!");
}
public static void main(String[] args) {
M m = new M();
}
}
问题:请问结果为什么会输出“Hello world!”,在main中我只是创建了一个对象,并没有使用该对象,怎么会执行输出语句
呢?
请各位高手指点,我这是哪个知识点没掌握好,谢谢。
...全文
6555 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxrlovejava 2012-09-25
  • 打赏
  • 举报
回复
在这个类里面,你不写
M() {
System.out.println("Hello world!");
}
也是对的,为什么呢?因为当类没有构造函数的时候,系统会自动给相关的类默认一个无参的构造函数,但是当有构造函数时,系统不会默认构造函数。
构造函数的作用就是初始化的时候调用,所以你的类会输出Hello world!
王子文龙 2012-08-22
  • 打赏
  • 举报
回复
实例化对象的时候就会执行构造函数
lizhenq_1 2010-11-02
  • 打赏
  • 举报
回复
在java语言 中,构造函数又称构造方法。特殊性在于,与普通方法的区别是,他与类名相同,不返回结果也不加void返回值。构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时,系统将不会再提供的无参构造函数。
lopohui1 2010-11-02
  • 打赏
  • 举报
回复
M m = new M();
凉岑玉 2010-11-02
  • 打赏
  • 举报
回复
构造函数之所以叫做构造函数··有一个特性你要记住··就是你构造这个类的对象的时候就必须执行构造函数·要有构造函数才能构造一个对象··也就是说·一个构造函数的执行和对象的构造是同步的·或者说·构造函数执行了之后才能构造对象··
gujinf2008 2010-11-02
  • 打赏
  • 举报
回复
当你new一个类的对象的时候,就调用了那个类的相应的构造方法,它不需要你去调用,系统给你调用的,记住,当你new一个对象的时候,首先执行的是它的构造方法。
licomeback 2010-11-02
  • 打赏
  • 举报
回复
你自己可以定义好多构造函数,分带参数的构造函数跟不带参数的构造函数。
如果你在new的时候不带参数,则会调用不带参数的构造函数,new的时候带参数,则会执行带相应参数的构造函数。
sl19900311 2010-11-02
  • 打赏
  • 举报
回复
new出来的时候调用的
hzygbicc 2010-11-02
  • 打赏
  • 举报
回复
M m = new M(); 当你创建对象的时候 它就会默认去执行构成函数!
8楼的说的很对!
YY_loveyong 2010-11-02
  • 打赏
  • 举报
回复
新建一个对象并new一个新对象就会调用main方法,
mengyalizuopeng 2010-11-02
  • 打赏
  • 举报
回复
class M {
M() {
System.out.println("Hello world!");
}
public static void main(String[] args) {
M m = new M();
}
}

在这个类里面,你不写
M() {
System.out.println("Hello world!");
}
也是对的,为什么呢?因为当类没有构造函数的时候,系统会自动给相关的类默认一个无参的构造函数,但是当有构造函数时,系统不会默认构造函数。
构造函数的作用就是初始化的时候调用,所以你的类会输出Hello world!
qingbt 2010-11-02
  • 打赏
  • 举报
回复
把new M()理解为两步:先通过new分配对象内存,然后调用M()方法。M()不是类名的使用,否则就不会出现new M(123)之类的了。
Acesidonu 2010-11-01
  • 打赏
  • 举报
回复
对象是用相应的构造函数创建出来的,当然会执行相应构造函数里的内容了。
无伤 2010-11-01
  • 打赏
  • 举报
回复
构造函数是用来创建类实例的, 在new时,会调用相应的构造函数。
whut0802 2010-11-01
  • 打赏
  • 举报
回复
当新创建一个对象的时候,会调用类的构造函数。呵呵,比较基础的东西,可以先看看书。
phpjspasp 2010-11-01
  • 打赏
  • 举报
回复
new的时候
小龙在线 2010-11-01
  • 打赏
  • 举报
回复
构造函数M()在新建对象new M()时会被调用
michaellufhl 2010-11-01
  • 打赏
  • 举报
回复
M m = new M(); 调到了System.out.println("Hello world!");

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧