黑马程序员技术交流社区

标题: 关于构造函数的问题 [打印本页]

作者: hdsjsql    时间: 2013-4-18 09:51
标题: 关于构造函数的问题
本帖最后由 hdsjsql 于 2013-4-18 11:32 编辑

API中有些类没有构造函数,是因为它们的构造函数被private修饰了,还是构造函数是默认权限,所有不显示,还是因为其它,求解?
就是想问,另外在老毕的视频06-05中可知,如果构造函数是默认构造函数,API中也会显示。
我的问题是:在API中,有的类为什么没有显示构造函数.
作者: 偏執旳、靑春    时间: 2013-4-18 10:06
1.构造函数是用来初始化的

2.java的每个类都必须有构造函数
   不存在没有构造函数的类
3.Java中构造函数的权限可以是private吗?为什么
   可以,一般用在单例模式
4.也可能有些构造函数被私有化了,不想让你看见

5.还有种可能就是默认了一个空参数的构造函数。
作者: lipingan0520    时间: 2013-4-18 10:30
每一个类中都必须要有一个构造函数,不然没法创建对象。
如果自定义了构造函数,那创建对象的时候,需要传自定义构造函数的,参数。
如果没自定义构造函数,系统会给你加一个默认的空参数的构造函数。
如果私有化了构造函数,只能在本类才能创建对象,外部创建不了。

作者: 645420297    时间: 2013-4-18 10:44
1、函数名与类名相同。
2、不用定义返回值类型。
3、不可以写return语句。
作用:给对象进行初始化。
注意:
1、默认构造函数的特点。
2、多个构造函数是以重载的形式存在的。
什么时候定义构造函数呢?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
当对象一建立就会调用与之对应的构造函数。
private:私有,用于修饰成员变量。
被修饰以后,类以外即使建立了对象也不能直接访问。

作者: hdsjsql    时间: 2013-4-18 11:00
就是想问,在API中,有的类为什么没有显示构造函数
作者: Miss小强    时间: 2013-4-18 11:11
肯定都有构造函数的,只是被私有化了,而且protected权限的构造函数外部类也不可见,只有该类的子类才可以访问;
因此构造函数全部为私有的类是一个final类,因为子类无法调用它的构造函数来进行初始化;
因此我们定义一个单例时,最好把该类的构造函数写为protected权限,以提高程序扩展性;
作者: Just_Only    时间: 2013-4-18 11:23
因为该类不让别人私自建立对象,自己建立的一个私自的对象,并且提供了一个公共访问该类对象的方法(getInstnce()),但是每个类中都有默认的无参数的构造函数,别人仍然可以建立对象,所以在该类也写了个无参数的构造函数并且私有化了,那么默认的构造函数也就没有了,所以在你api的看的时候有的类没有显示构造函数,那个老师在单列设计模式中说的很清楚的哦,你好好看看的哦。




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