这个问题只是为了清除概念,所以请不要强调"为什么会有人写这样的课程"
我已经知道如何在不创建对象实例的情况下访问静态函数(意味着不修改对象的状态)。但是让我们考虑一下这两个只有两个函数的类:
class A {
/* no class attributes */
/* no constructor */
public function someFunction(){
}
public static function someStaticFunction(){
}
}
class B {
/* no class attributes */
/* no constructor */
public function some_function(){
}
public function someNonStaticFunction(){
/* with same implementation as of A::someStaticFunction() */
}
}
对于A类:没有构造函数和属性,所有函数都是公共的。所以,
答案 0 :(得分:1)
静态方法是OO语言不允许正常函数的黑客攻击(我正在看你Java!)。
静态方法是类上的方法,它不操纵从该类派生的任何对象实例的状态。 (这不是100%准确,静态方法仍然可以操纵任何类型的对象,只要它被传递到它中。)
简而言之,如果您的方法中没有this
关键字,则为静态。无论你实际上是将它称为静态,还是为它初始化一个虚拟实例,都无关紧要。