Scala中权限访问
(1)Scala 中属性和方法的默认访问权限为public,但Scala中无public关键字。
(2)private为私有权限,只在类的内部和伴生对象中可用。
(3)protected为受保护权限,Scala中受保护权限比Java中更严格,同类、子类可以访问,同包无法访问。
(4)private[包名]增加包访问权限,包名下的其他类也可以使用
package com.keda.daysource
object AacsseTest {//伴生对象
def main(args: Array[String]): Unit = {
val person = new AacsseTest
person.say()
println(person.name)//伴生对象可以访问私有属性
println(person.age)
}
}
class AacsseTest {
private var name = "bob"
protected var age = 12
private[day02] var sex: String = "nv"
def say(): Unit = {
println("hello")
}
}
class AacsseTester extends AacsseTest{
def test(): Unit = {
this.age //protected修饰可以被子类所访问
this.sex //private[包名]增加包访问权限,包名下的其他类也可以使用
}
}
class Animal {
def test: Unit = {
// Aacss.age protected修饰 同一个包不可以访问只有同一个类或者其子类才可以访问
var Aacss = new AacsseTest
//private[包名]增加包访问权限,包名下的其他类也可以使用
new AacsseTest().sex
}
}