你没有在 A 的构造子中,或者 b 和 c 属性定义时进行显式对象初始化,所以你在 new A 的时候需要对它们进行初始化。
单例模式三要素:一个私有的本类的静态对象,一个私有的构造子,还有一个公开的提供私有对象访问的接口。实现这些就是单例。至于怎么写,看你环境的实现要求。
单例模式三要素:一个私有的本类的静态对象,一个私有的构造子,还有一个公开的提供私有对象访问的接口。实现这些就是单例。至于怎么写,看你环境的实现要求。
解决方案 »
- private有什么奥秘吗?
- 鼠标双击事件改变了linkedlist里面数据的顺序??
- 求Tomcat在Eclipse3.1.2中的插件 tomcatPluginV3.zip
- 我是初学者,想请教一个问题,谁能帮忙解答下,谢谢。
- 求教 文件保存用户信息,然后读取信息的方法
- 求助!!!如何用Swing组件来实现这样一个命令行模式中的功能啊?(有代码)
- ----读取文件中特定文本的问题-----
- 学一年java了,这个问题我都解决不了,真是郁闷之极呀!!!
- 奇怪了,为什么会取不到我机子上更改后的IP?
- 多线程并发访问全局变量引起空指针问题
- 这段代码的执行结果不懂,有木有小伙伴帮忙看看啊!
- java 线程 生产者和开发者模式
private static A a = new A();
private A(){
} public static A getIns(){
return a;
}
}
单例楼上都说了
private B b; //这是一个类
private C c; //这是另一个类
}这只是声明了:类 A 中包含两个类型分别为 B 和 C 的成员。而成员的值不会自动生成,必须要赋值才行,否则 b 和 c 就一直为 null。
没问题的,你考虑多了。还有,如果你用不着 b 和 c,可以考虑懒加载的。
private B b;
private C c;
//如果需要用到 b 和 c的话就要new,如果不要用到,就可以不用new的
private A(){
b = new B();
c = new C();
}
private static A a;
public static A getInstance(){
if(a==null){
a = new A();
}
return a;
}
}希望对你有用。
单子模式有饿汉式和懒汉式,你百度一下吧