日期:2014-05-20  浏览次数:20757 次

关于Java构造方法为private
在学习Java的过程中,听老师说,如果把Java的构造方法弄成private 该内就没有多大的用途。但是我还是有一个疑问,如果把Java的构造方法弄成private,那里面的成员属性是不是只有通过static来访问呢。如果构造方法是private的话,那么有什么好处呢。如果构造方法是private的话,会不更好的封装该内呢。
  求高手解答,谢谢!

------解决方案--------------------
好处就是不能随便创建对象,
像这种的话,也不能说,《Java的构造方法弄成private 该内就没有多大的用途》
可以提供一静态的 方法返回一实例,这就是单例模式,
这种方法式也常用呀,
Java code

class A(){
  private A(){}
  pbulic name;
  
  pulbic static A creatInstance(){
    
       return new A();
  }
  
}

A a = A.createInstance();
a.name; //name 属性

------解决方案--------------------
构造函数弄成private 就是单例模式,即不想让别人用new 方法来创建多个对象,可以在类里面先生成一个对象,然后写一个public static方法把这个对象return出去。(eg:public 类名 getInstancd(){return 你刚刚生成的那个类对象;}),如果谁要用这个类的实例就用
Java code
类名.getInstance();

------解决方案--------------------
更正:public static 类名 getInstance(){return 对象;} 
用static是因为你的构造函数是私有的,不能产生对象,所以只能用类名调用,所有只能是静态函数
------解决方案--------------------
探讨
在学习Java的过程中,听老师说,如果把Java的构造方法弄成private 该内就没有多大的用途。但是我还是有一个疑问,如果把Java的构造方法弄成private,那里面的成员属性是不是只有通过static来访问呢。如果构造方法是private的话,那么有什么好处呢。如果构造方法是private的话,会不更好的封装该内呢。
求高手解答,谢谢!