类的构造函数可以声明为private,这意味这构造函数只能在类的内部被调用:
public class TestClass { private int tick = 10; private TestClass(){ tick--; } public static final TestClass tc = new TestClass(); public static TestClass getTestClass(){ return tc; } public void speak(){ System.out.println("this is TestClass:"+tick); } public static void main(String[] args) { TestClass tc = null; tc = TestClass.getTestClass(); tc.speak(); TestClass tc1 = TestClass.getTestClass(); tc1.speak(); } }
有上述代码要注意几点:
1、构造函数私有化之后不能直接实例化,因此如果要调用构造函数必须将相应的变量和方法声明为static
2、添加final,这样做不管外面声明多少个对象,最后都指向同一个实例。
3、这叫java的单态模式。