scala几个关键词

2017-04-21  本文已影响0人  winyang

public/private/protected的具体区别:

在说明这四个关键字之前,先对class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

4.对于private[spark]这种使用就是:

/** 
  * Scala 对private关键字进行的细粒度访问控制 
  * 和java不一样的在与protected关键字和private关键字,Scala默认的关键字是public 
  * Scala支持嵌套包定义 
  * 如果需要对别的包可见的话,可以写成private[cn],private[limbo]等 
  * import语句可以写在任意的位置 
  */  
  
package cn.limbo.demo  
  
package society{  
  
  package professional{  
    class Executive {  
      private [professional] var workDetails = null;  
      private [society] var friends = null  
      private [this] var secrets = null     //this表示只能在该实例下才可以访问该属性  
  
      def help(another : Executive){  
        println(another.workDetails)  
       // println(another.secrets)  // error  
      }  
    }  
  }  
  package social {  
    class Acquaintance() {  
      def socialize(person:professional.Executive): Unit ={  
        println(person.friends)  // ok  
       // println(person.workDetails) // error  
      }  
    }  
  }  
}  
上一篇 下一篇

猜你喜欢

热点阅读