scala几个关键词

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  
      }  
    }  
  }  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,518评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,958评论 18 399
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 6,233评论 0 3
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,195评论 1 114
  • another meaning about “get”,means understand,wow,this can...
    无与伦比呀阅读 890评论 0 0