因为构造方法被私有化,所以不允许在类外直接创建对象,在类的内部在定义一个静态方法,在这个静态方法里可以调用被私有化的构造方法,所以就可以间接地创建对象,(所以这个静态方法的功能就是创建对象) 最后在类外可以直接用类名调用这个静态方法达到创建对象的目的
2017-03-23
最赞回答 / 语沫流逝
<...code...>结论:(1)、静态属性不需要实例化即可调用。因为静态属性存放的位置是在类里,调用方法为"类名::属性名";(2)、静态方法不需要实例化即可调用。同上(3)、静态方法不能调用非静态属性。因为非静态属性需要实例化后,存放在对象里;(4)、静态方法可以调用非静态方法,使用 self 关键词。php里,一个方法被self:: 后,它就自动转变为静态方法;
2017-03-23