黑马程序员技术交流社区
标题:
构造方法问题
[打印本页]
作者:
曾宇
时间:
2014-7-19 22:09
标题:
构造方法问题
本帖最后由 曾宇 于 2014-7-24 13:45 编辑
java中没有构造方法的类,没有构造方法时,java会自动添加无参构造方法,那么为何有些系统类无法创建?是什么原因造成的。
作者:
不可言
时间:
2014-7-19 22:23
可能是final修饰的类,也可能是非公有的构造方法,也可能使抽象类
作者:
王一勇
时间:
2014-7-19 22:51
这是因为构造方法被
private修饰
了,不让外界创建(属于
单例设计模式
),这时在此类的内部肯定会提供一个
公共的静态修饰
方法,可以用来创建此类的对象。当外界需要此类对象时,直接类名调用此方法就创建此类的对象了,目的是保证内存中只有一个此类的对象。 如下面例子: public class Student { // 通过private修饰不让外界创建对象
private Student() {
}
private static Student s = new Student();
//提供了一个可以创建本类对象的方法,并返回此类对象
public static Student getStudent() {
return s;
}
}
作者:
邹中源
时间:
2014-7-22 22:51
老师推荐自己手动给出无参
作者:
曾宇
时间:
2014-7-24 13:44
王一勇 发表于 2014-7-19 22:51
这是因为构造方法被private修饰了,不让外界创建(属于单例设计模式),这时在此类的内部肯定会提供一个 ...
谢谢解答,很详细。
原来是单例模式的原因。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2