A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,大家踊跃发言啊,有好多不懂的啊...

8 个回复

倒序浏览
hufan小步调 来自手机 中级黑马 2015-8-5 22:26:27
沙发
Morrfree 发表于 2015-8-5 22:18
如题,大家踊跃发言啊,有好多不懂的啊...

私有化构造方法,外界就无法初始化,无法实例化对象,只有本类可以创建对象,如果将对象成员再私有化,提供公共访问方式,这样就构成了单例模式,例如月亮类就只有一个月亮对象。
回复 使用道具 举报
hufan小步调 发表于 2015-8-5 22:26
私有化构造方法,外界就无法初始化,无法实例化对象,只有本类可以创建对象,如果将对象成员再私有化,提 ...

这个外界是什么?

点评

指另一个类  发表于 2015-8-5 22:31
回复 使用道具 举报
其实外界还是可以拿到实例的。
  1. import java.lang.reflect.*;
  2. class Test
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 Class cls = Class.forName("Demo");
  7.                 Constructor constructor = cls.getDeclaredConstructor();
  8.                 constructor.setAccessible(true);
  9.                 Demo demo =(Demo)constructor.newInstance();
  10.                 System.out.println(demo.a);
  11.         }
  12. }
  13. class Demo//构造方法被私有化的类
  14. {
  15.         public String a = "wo ca lie!";
  16.         private Demo(){}
  17. }
复制代码
回复 使用道具 举报
hufan小步调 来自手机 中级黑马 2015-8-5 22:48:32
报纸
halohoop 发表于 2015-8-5 22:38
其实外界还是可以拿到实例的。

这是到了反射的内容?还没学
回复 使用道具 举报
hufan小步调 发表于 2015-8-5 22:26
私有化构造方法,外界就无法初始化,无法实例化对象,只有本类可以创建对象,如果将对象成员再私有化,提 ...

恩,虽然还没讲到单例设计模式,但是会下去研究下的.
回复 使用道具 举报
何琼飞 发表于 2015-8-5 22:29
这个外界是什么?

指的是子类.
回复 使用道具 举报
halohoop 发表于 2015-8-5 22:38
其实外界还是可以拿到实例的。

恩恩   ,我今天网上又查了下,是可以在那个构造方法被私有的类中对外暴露一个方法,从而使子类创建对象的.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马