黑马程序员技术交流社区

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

作者: 夕颜    时间: 2015-4-21 10:34
标题: 构造函数的问题
一个类中,如果有私有属性,是不是就不能用构造函数对对象进行初始化
作者: 曾宇    时间: 2015-4-21 10:56
是的,因为外部无法访问到私有的构造函数,也就无法创建对象
作者: 夕颜    时间: 2015-4-21 10:57
曾宇 发表于 2015-4-21 10:56
是的,因为外部无法访问到私有的构造函数,也就无法创建对象

恩恩 谢谢解答
作者: 海带    时间: 2015-4-21 11:02
楼主好像没有吧问题说清楚,是构造函数是私有的还就是封装的私有的成员。
作者: 弯曲/mg抛物☀    时间: 2015-4-21 11:23
私有了,如果要用,就得在类中创建一个实例,对外提供公共的访问方法。单例模式。
作者: 只吃饭不洗碗    时间: 2015-4-21 11:35
只要类不是抽象类,而且构造函数 没有私有化  仅仅是有别的私有对象的话  是可以创建这个类的对象啊
如果不想让外面的类创建这个类的对象 可以将这个类加上抽象修饰符或者将构造函数私有化
作者: 夕颜    时间: 2015-4-21 11:44
海带 发表于 2015-4-21 11:02
楼主好像没有吧问题说清楚,是构造函数是私有的还就是封装的私有的成员。 ...

属性私有,比如车的颜色私有,定义一个构造函数来初始化车 的颜色,后来发现就算属性私有,但是也可以用构造函数来初始化对象,此时构造函数跟setXX是一样的功能
作者: 夕颜    时间: 2015-4-21 11:45
弯曲/mg抛物☀ 发表于 2015-4-21 11:23
私有了,如果要用,就得在类中创建一个实例,对外提供公共的访问方法。单例模式。 ...

恩恩  是的  属性私有后,用构造函数初始化, 此时与用setXX一样的功能
作者: 夕颜    时间: 2015-4-21 11:46
只吃饭不洗碗 发表于 2015-4-21 11:35
只要类不是抽象类,而且构造函数 没有私有化  仅仅是有别的私有对象的话  是可以创建这个类的对象啊
如果不 ...

嗯嗯  是的
作者: IDhmpj    时间: 2015-4-21 12:18
受教了,刚才试了,的确可以初始化,但是无法使用。{:3_57:}
作者: itheima_llt    时间: 2015-4-21 15:08
留个脚印```````
作者: itheima_llt    时间: 2015-4-21 20:14
我顶啊。接着顶
作者: 古典牧童    时间: 2015-4-21 20:20
看了解答才知道我之前理解的是错的,汗!
作者: 王善辉    时间: 2015-4-21 22:24
怎么不可以呢,私有属性本类是可以访问的,你说的是构造函数是私有还是,你可以通过本类中new出对象,这样就是传说中的单例设计拉
作者: 若我成风    时间: 2015-4-22 00:14
没错大兄弟
作者: 1352107393    时间: 2015-4-22 18:27
对象私有的属性设置setter和getter方法,然后可以通过构有参数的造函数初始化的,并且通过getter方法也可以获得该属性值的
作者: yapo    时间: 2015-4-22 22:03
是私有属性(变量),又不是将构造函数(方法)私有化,这样也不可以将对象初始化
作者: 牵猪散步    时间: 2015-4-22 22:19
怎么可能呢!对对象初始化,就是通过调用构造函数的,能属性没有半毛钱关系!
作者: 莫里亚蒂    时间: 2015-4-22 22:42
一般都属于属性私有,用构造函数初始化比较正常,不过我是新手理解的不是很到位

作者: gc278161209    时间: 2015-4-22 23:39
加油 !!!!订一个!!
作者: 魔蝎座    时间: 2015-4-22 23:52
这个应该是要看这个私有属性到底是定义在构造函数里面还是成员变量吧。




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