公共静态方法与公共方法

时间:2010-09-30 15:39:11

标签: actionscript-3 public-method

公共静态方法和公共方法之间有什么区别?为什么要使用公共静态方法?

4 个答案:

答案 0 :(得分:11)

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

Math.round(average)

Math类本身没有改变你所做的 - 它只返回一个值或对你传递的值起作用。

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

这样的事情
StringUtils.removeWhitespaceFrom(textContent:String):String

BrowserUtils.openInNewWindow(url:String):void

您使用静态方法处理其他任何事情都是非常不寻常的。不要使用像'getInstance()'这样的静态来创建单例 - 而是查看依赖注入的框架。

答案 1 :(得分: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;
    }
}

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

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

公共班级CAR {

private static var Counter:int = 0;

private function CAR(){Counter ++; }

public static function ReturnTotalCarInstances():int {    返回柜台; }

}

静态变量有其优点,这就是为什么它在大多数编程语言中提供的原因。计数实例是静态变量的小用途。它们的使用范围更广。重点是它用于在Class的所有对象之间全局共享数据。