Scala学习文档-访问修饰符

在scala里,对保护成员的访问比Java严格。Scala中,保护成员只在定义了成员的类的子类中可以访问,而Java中,还允许在同一个包的其他类中访问。

package p1 {
  class FClass{
    protected def fun(){ println("myfunction") }
  }
  class SClass extends FClass{
    fun()//允许访问
  }
  class OtherC{
    fun()//错误 不允许访问
  }
}

保护的作用域

Scala里的访问修饰符可以通过限定词强调 private[x] 或 protected[x] 表示知道x的私有或保护。 x指代包、类、单例对象

例:

import bob.nav._
object Test12{
 def main(args:Array[String]):Unit={
    var c1 = new CCCC;//访问无效 超出了bob包
  }
} 
package bob{
  package nav{
     protected[bob] class CCCC{    //这个类对包含在bob包内的所有类和对象可见,在bob包之外的代码无法访问
        protected[nav] def cfun(){println("CCC1")} //这个方法对navigate包内的类和对象可见
        protected[this] val myspeed = 200;
          class MyC{
            private[nav] def myfun(){println("MyC")}
          }
          val c1 = new CCCC
          c1.myspeed //错误
    }
  }
}
时间: 2024-08-06 09:10:03

Scala学习文档-访问修饰符的相关文章

scala学习手记10 - 访问修饰符

scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. scala的默认访问修饰符 如果没有修饰符,scala会默认把类.字段.方法的访问修饰符当做public.如果要将之调整为private或protected,只需在前面添加对应的修饰符关键字即可.就如下面的程序: class Microwave{ def start() = println("star

Scala学习文档-样本类与模式匹配

样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定. //样本类case class //层级包括一个抽象基类Expr和四个子类,每个代表一种表达式 //样本类自动添加与类名一致的工厂方法 abstract class Expr case class Var(name:String) extends Expr//括号内参数不用加val,默认为加val的字段 case class Number(num:Double) extends Expr

Scala学习文档-各种使用模式的情况

模式在变量定义中 在定义val或者var的时候,可以使用模式替代简单的标识符,如可以使用模式拆分元组,并把每个值分配给变量 val myTuple = (123,"abc") var (num,str) = myTuple 如此,num=123,str="abc" 如果知道正在使用的样本类的精确结构,可以使用模式结构它 val op = BinOp("+",Number(1.0),Var(x)); val BinOp(ele1,ele2,ele3

Scala 访问修饰符(private-public-protected)

基本和Java的访问修饰符一样.在scala 中也有访问修饰符,如下 Members of packages, classes, or objects can be labeled with the access modifiers private and protected, and if we are not using either of these two keywords, then access will be assumed as public. These modifiers r

.Net学习笔记----2015-06-27(访问修饰符)

周末要陪老婆孩子,还要多多做些家务事,所以只能晚上学习喽 C#中的访问修饰符: public:公开的公共的. private:私有的,只能在当前类的内部使用. protected:受保护的,只能在当前类的内部以及该类的子类中访问. internal: 只能在当前程序集(项目)中访问,在同一个项目中,public和internal的权限是一样的. protected internal:protected + internal. (1).能够修饰类的访问修饰符只有2个,:public     int

Scala访问修饰符(四)

Scala 访问修饰符基本和Java的一样,分别有:private,protected,public. 如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public. Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员. 私有(Private)成员 用private关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类. class Outer{ class Inner{ pr

.Net学习 第3季 C#面向对象 访问修饰符

.Net 视频学习第3季 C#面向对象 面向对象 访问修饰符 C#五种访问修饰符 1)可以修饰类的访问修饰符只有两个:public,internal(默认) internal:只可以在当前程序集(先理解为项目)中访问 public:公共的 项目A访问项目B中的public类,首先要在项目A的引用中添加项目B,然后再项目A的文件中添加using 项目B该类的命名空间. 在同一个程序集当中,public和internal的访问权限一样. 2)修饰类的成员的访问修饰符:public,private,p

.Net学习笔记----2015-07-21(C#基础复习07,关键字、访问修饰符)

1.new关键字: 1).创建对象 2).隐藏从父类继承过来的成员 什么是面向对象? 一种分析问题的方式(增强了程序的可扩展性) 面向对象的三大特性:封装.继承.多态 类?对象?类和对象的区别? *类是模子,确定对象将会拥有的特征(属性)和行为(方法) *对象是一个你能够看的到.摸得着的具体实体---万物皆对象 ***类是模具,创建对象的模具,抽象的. 1).类是一种数据类型,用户自定义的数据类型 2).类的组成:字段.属性.方法.构造函数等 ***对象是具体的,是类的具体实例.对象具有属性(特

.NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 –  //单行注释 –  第二种:多行注释  以 /*开头   */结束 之间的是注释内容 –  /*  */多行注释 –  第三种:文档注释  在方法或类的上一行输入 ///就会产生 –  /// –  ///文档注释 –  /// –  So....截图就是这三种注释的用法了. 再来说说命名规则