黑马程序员技术交流社区
标题:
构造函数私有化
[打印本页]
作者:
李健_8
时间:
2012-10-8 22:27
标题:
构造函数私有化
本帖最后由 李健_8 于 2012-10-9 12:10 编辑
为什么构造函数私有化就不能 在类外new对象
作者:
李兆宁
时间:
2012-10-8 22:34
私有后就不能在其他类中访问,构造函数私有后,就没法在别的对象中调用构造函数。
在new对象时,就调用了构造方法,而方法私有,所以不能创建了。。
作者:
王虎
时间:
2012-10-8 22:47
本帖最后由 王虎 于 2012-10-8 22:51 编辑
这是权限控制的问题, 1.首先明白在类外new 对象()其实是调用构造函数
比如
public static void main(String[] args)
{
Person p = new Person();
}
class Person
{
Person()
{}
}
2.你的目的是new 一个对象,说白了是为了用这个对象(比如做一些事或用这个对象的属性),那这样用单例模式就可说明一切
首先私有化构造函数
其次在本类中new对象
最后提供一个对外的访问方式返回对象供本类外部使用
代码参考:class SingleTon
{
private static SingleTon single = new SingleTon();
private SingleTon()
{
}
public SingleTon getInstance()
{
return single;
}
}
这样设计会比直接new个对象更好些,也保证了内存的有效使用
作者:
qhasilver
时间:
2012-10-8 22:54
在类外new对象,本身就是对类的构造方法的调用,没写构造方法时是默认调一个空的构造方法,你显示写出来了,并私有化了,根据java的权限控制,在外部类是无法访问其他类的私有属性或方法的。
作者:
叶征东
时间:
2012-10-8 23:54
在毕老师的视频中,第6天的第7个视频中是这样讲的.
在对象的初始化过程中,对象进行了对应的构造函数的初始化之后,
才会将地址值赋给栈内存中的引用变量,
将构造函数私有后,都不能被访问了,也就不能进行初始化这一步骤了,
后面的步骤也就不能进行了.
作者:
刘 佳
时间:
2012-10-9 04:08
先明确两点:
1,函数私有化之后只能在本类中可以访问。
2,构造函数是用于给对象初始化的
想创建该类对象必须先对对象进行初始化,否则不能建立对象。你把构造函数私有后,只能本类访问,在其他类中是访问不到的,既然不能初始化,当然无法建立对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2