本帖最后由 曹宇 于 2013-3-28 23:29 编辑
如题。下面的代码是毕老师的视频教学中讲的单例设计的代码,其中我就疑惑在这,既然构造函数叫私有化了,那么就代表不能创建对象。
在老师的代码中,在其他类是不能创建对象的,可是在这个被私有构造函数的类中,可以创建本类对象。
我想知道,这是为什么呢?构造函数叫私有化了,这个对象是如何创建完成的呢?
谢谢了!- class Test
- {
- private static int num;
- private Test(){} //私有了构造函数
-
- /*
- 创建对象不是需要构造函数吗?构造函数叫干掉了,为什么在本类中还能创建本类对象呢?
- */
- private static Test t=new Test(); // 创建本类对象
-
- public static Test getTest() //给这个对象给外界提供访问方式,返回值类型是 Test(类)类型
- {
- return t;
- }
- public void setNum(int num)
- {
- this.num=num;
- }
- public int getNum()
- {
- return num;
- }
- }
- class Print
- {
- public static void main(String[] args)
- {
- Test t2=Test.getTest(); //将对象t的引用赋值给t2
- t2.setNum(20);
- System.out.println(t2.getNum());
- }
复制代码 |