公共静态方法和公共方法有什么区别?为什么要使用公共静态方法?
Math类的方法是静态的。因此,在使用它们时,不需要创建Math的实例。
Math.round(average)
你所做的不会改变Math类本身,它仅返回一个值或对你传递的值进行操作。
因此,静态方法非常适用于工具类。例如:
StringUtils.removeWhitespaceFrom(textContent:String):String
或者BrowserUtils.openInNewWindow(url:String):void
很少有情况下你会使用静态方法。不要使用像 'getInstance()' 这样的静态方法来创建单例 - 考虑使用依赖注入框架。
静态方法可以用作重载构造函数。ActionScript没有函数重载,所以有时我会写类似于以下代码:
public class Foo {
public static function fromBar(bar:Bar):Foo {
var foo:Foo = new Foo();
... //initializing foo object from bar
return foo;
}
public static function fromBaz(baz:Baz):Foo {
var foo:Foo = new Foo();
... //initializing foo object from baz
return foo;
}
}
静态方法是指不属于类(对象)任何实例的方法。它们不允许包含this引用,并且可以直接通过类访问,而不是对象实例。