首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态私有、私有、静态公共、公共

静态私有、私有、静态公共、公共
EN

Stack Overflow用户
提问于 2015-10-19 23:36:17
回答 2查看 1.6K关注 0票数 2

谁能解释一下,当涉及到函数和变量时,Haxe语法的区别是什么?

代码语言:javascript
复制
public var theName;

vs

代码语言:javascript
复制
static public var theName;

代码语言:javascript
复制
static private var theName;

vs

代码语言:javascript
复制
private var theName;

对于ex的函数也是如此。

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

EN

回答 2

Stack Overflow用户

发布于 2015-10-20 07:09:23

有两个作用域

代码语言:javascript
复制
static

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

代码语言:javascript
复制
ClassName.reference();

将是:

代码语言:javascript
复制
class ClassName{
    static public function reference(){
        return "hello world";
    }
}

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

代码语言:javascript
复制
new ClassName().reference();

这将是:

代码语言:javascript
复制
class ClassName{
    public function new(){
       //We need a constructor.
    }
    public function reference(){
        return "hello world"
    }

另一种是选择:

代码语言:javascript
复制
public / private

引用类型作用域之外的引用的可用性。

代码语言:javascript
复制
private function reference(){
   return "hello world";
}

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

代码语言:javascript
复制
static private function ....

具有类似的效果,因为它仅在类位于本地的情况下可用

代码语言:javascript
复制
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.
   }
}
票数 6
EN

Stack Overflow用户

发布于 2015-10-19 23:59:29

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33218493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档