2010-09-30 136 views

回答

11

Math类的方法是静态的。所以,在做

Math.round(average) 

数学类本身不会改变你所做的 - 它只会返回一个值或作用于你传递的值。

所以 - 静态方法对实用程序很有用。比如像

StringUtils.removeWhitespaceFrom(textContent:String):String 

BrowserUtils.openInNewWindow(url:String):void 

这是非常不寻常的,你会使用一个静态方法为别的。不要像'getInstance()'那样使用静态来创建Singletons - 而应该考虑依赖注入框架。

3

静态方法是方法,一个不特定的类(对象)的任何实例,他们是不允许包含此引用的方法,你可以通过类直接访问它们(而不是对象实例)

2

为了使你的概念清楚,假设你想知道你的类被实例化了多少次,你将在你的类构造器中使用静态变量计数器,每次创建对象时。

然后,你必须使用静态方法来访问这些数据,否则你可以声明你的变量public或default,并用类名访问它,但是违反了OOP原则。这里是小例子

公共类CAR {

私人静止无功柜台:= 0;

private function CAR(){Counter ++; }

public static function ReturnTotalCarInstances():int { return Counter;为什么它在大多数编程语言提供 }

}

静态变量有自己的利益,多数民众赞成。计数实例是静态变量的一小部分。它们在更大的范围内使用。主要的一点是它被用来在Class的所有对象之间共享全局数据。

4

静态方法可以用作重载构造函数。 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; 
    } 
}