A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 年轻的棒棒 中级黑马   /  2013-5-23 11:29  /  1627 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 年轻的棒棒 于 2013-5-23 12:08 编辑

在一个类中,如果有一个指定的构造函数,默认的构造函数就没有了。
那么一创建对象,就是构造函数里的值么?
如:
class Demo{
int num;
Demo{
num=11;
}
这个num会先是0后转为了11,拿num-0是不是调用了默认的构造函数呢?
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

6 个回复

倒序浏览
你上面那个类,创建对象就要传值啊。传了值,它就赋值给num了
回复 使用道具 举报
看错了,你那个构造函数,有问题啊,你都没有写括号,里面到底传不传值,你也没定。。
回复 使用道具 举报
class Demo{
int num;
Demo(){
num=11;
}
}

构造函数格式有点点错误,这个你再试试
回复 使用道具 举报
构造函数写法
public Demo(){}
你指定了构造函数,那么默认的就没有了,而你所说的赋值为0是默认初始化的结果;
并没有调用什么构造函数;
也就是说,在调用构造函数之前,是会有默认初始化,即赋值0;
可以在num=11;之前加打印语句 sop(num);
一般建议,我们自己写了有参构造函数,最好加一个无参构造函数;
希望对你有用;

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
楼主你好:能看出来你是认真提的问题,非常好,所以给你加1分。

那么构造函数什么时候被调用呢?,
就是当Demo对象被创建的时候,才会调用构造函数,
那么什么时候表示对象被创建呢,当你 new Demo();的时候表示对象创建了,
前面也可以加个引用变量来指向这个对象的内存首地址。
这样看来成员变量与构造函数里的值没有直接关系,必须通过创建对象才能产生关系。

建议楼主再看看关于this()在构造函数的作用,由于时间关系,我还要搜帖,就不回答那么详细了,加油,我会关注你的。

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我了解了,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马