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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张洁 中级黑马   /  2012-6-6 14:55  /  1769 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张洁 于 2012-6-7 17:20 编辑

我记得使用构造方法的时候,你不添加参数、或者不写构造方法的话都是直接new ClassName()

比如:
1、无参数
Class ClassName {
public ClassName() {
   ...
}

...

}

2、不写
Class ClassName {
//不写构造方法

...
}

这俩个有什么区别吗?

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

4 个回复

倒序浏览
正好思考过这个问题,说下自己的理解。

我记得老师视频里这么用过,虽然不写构造函数可以直接new ClassName()

但是有种情况还是要这样“多此一举”的。
比如你不想被新建事例对象,就可以写:
Class ClassName {
private ClassName() {}
.
.
.
}
这样的话,加一个private的修饰符,也就是私有的外部无法访问,这样就不可以new这个类的对象啦~
有的时候还是需要用到这个技巧的
回复 使用道具 举报
想你这样写话是没区别的,你写得无参数构造方法,相当于覆盖了那个缺省构造方法。
如果你不写,那就系统默认给你一个缺省构造方法。
回复 使用道具 举报
如果你不写构造方法那么系统会为你隐身的在程序里有个无参数的构造方法 ,若你有带参数的构造方法那么午无惨构造方法将不被系统提供

在开发中建议你 无惨构造方法一定要写上
回复 使用道具 举报
简单的是如果你实例化一个对象,如果里面有一个有参数的构造方法,而你实例化时可以不用传入参数,那么就必须有一个无参构造方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马