黑马程序员技术交流社区

标题: [已解决]关于构造方法的问题 [打印本页]

作者: 张洁    时间: 2012-6-6 14:55
标题: [已解决]关于构造方法的问题
本帖最后由 张洁 于 2012-6-7 17:20 编辑

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

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

...

}

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

...
}

这俩个有什么区别吗?

作者: 李春阳    时间: 2012-6-6 15:00
正好思考过这个问题,说下自己的理解。

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

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

在开发中建议你 无惨构造方法一定要写上
作者: 李海晓    时间: 2012-6-7 17:18
简单的是如果你实例化一个对象,如果里面有一个有参数的构造方法,而你实例化时可以不用传入参数,那么就必须有一个无参构造方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2