静态私有,私有,静态公共,公共之间的区别

时间:2015-10-19 15:36:17

标签: haxe

有人可以解释一下Haxe语法在函数和变量方面的区别。

public var theName;

vs

static public var theName;

static private var theName;

vs

private var theName;

和ex。

的功能相同

static private function(){} vs private function(){}

2 个答案:

答案 0 :(得分:6)

有两个范围

static

指的是班级。也就是说,它可以通过类引用和名称引用。

ClassName.reference();

将是:

class ClassName{
    static public function reference(){
        return "hello world";
    }
}

另一个是指使用new运算符构造的类实例。

new ClassName().reference();

这将是:

class ClassName{
    public function new(){
       //We need a constructor.
    }
    public function reference(){
        return "hello world"
    }

另一个是选择:

public / private

指的是类型范围之外的引用的可用性。

private function reference(){
   return "hello world";
}

只有在this变量引用相关类实例的情况下调用时才可用。所以:this.reference()会编译,但new ClassName().reference()不会。

static private function ....

具有类似的效果,因为它仅在类是本地

的情况下可用
class MyClass{
   private static function unavailable(){
       return "available";
   }
   public static function available(){
       return something();
   }
}
class Main(){
   static public function main(){
       MyClass.unavaliable()//will not compile
       MyClass.available()//good to go.
   }
}

答案 1 :(得分:2)

  

static:该字段属于Class本身,而不属于此类的实例。静态标识符可以直接在类本身中使用。在类之外,它必须与类名一起使用(例如:my.pack.MyClass.name)。

http://old.haxe.org/ref/oop