Scala访问修饰符用法实例

本文概述

访问修饰符用于定义数据和我们的代码对外界的可访问性。你可以可访问地应用于类, 特征, 数据成员, 成员方法和构造函数等。Scala提供了对所有人的最小访问权限。你可以根据应用程序要求将任何访问修饰符应用于代码。

Scala仅提供三种类型的访问修饰符, 如下所示:

  1. 没有编辑
  2. protected
  3. private

在scala中, 如果你未提及任何访问修饰符, 则将其视为没有修饰符。

下表包含有关访问修饰符的可访问性的信息。

Modifier 外包装 Package Class Subclass Companion
无访问修饰符 Yes Yes Yes Yes Yes
Protected No No Yes Yes Yes
Private No No Yes No Yes

Scala示例:专用访问修饰符

在scala中, 专用访问修饰符用于使数据仅在声明了它的类中可访问。它受到最大限制, 并使你的数据保持在有限范围内。私有数据成员不会继承到子类中。

class AccessExample{
     private var a:Int = 10
     def show(){
         println(a)
     }
}
object MainObject{
    def main(args:Array[String]){
        var p = new AccessExample()
        p.a = 12
        p.show()
    }
}

输出

error: variable a in class AccessExample cannot be accessed in AccessExample
        p.a = 12
          ^
one error found

Scala示例:受保护的访问修饰符

受保护的访问修饰符仅在类, 子类和伴随对象内可访问。声明为保护的数据成员在子类中继承。让我们来看一个例子。

class AccessExample{
     protected var a:Int = 10
}
class SubClass extends AccessExample{
    def display(){
        println("a = "+a)
    }
}
object MainObject{
    def main(args:Array[String]){
        var s = new SubClass()
        s.display()
    }
}

输出

a = 10

Scala示例:无访问修饰符

在scala中, 当你不提及任何访问修饰符时, 它将被视为no-access-modifier。与java中的public相同。它的限制最少, 可以从包装内或包装外的任何地方轻松访问。

class AccessExample{
     var a:Int = 10
     def show(){
         println(" a = "+a)
     }
}

object MainObject{
    def main(args:Array[String]){
        var a = new AccessExample()
        a.show()
    }
}

输出

a = 10
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?