package level02
/*
访问权限控制
1.公开的。不写修饰符
2.protected.保护的
在类的外部不能访问:
在子类中访问
3.private ,私有的
在类的外部不能访问!
在子类中不能访问
在伴生对象中可以访问!
4.prvate[this]
只能被当前对象中使用
在类的内部使用
*/
object class24 {
object Person {
def test(p.Person):Unit {
//private 在伴生对象中可以访问!
println(p.password)
//private[this]在伴生对象中不能访问
//println(p.money)
}
}
class Person() {
var name:String = "xx"; //公开的
protected var birthday: String = "2000-10-10"
private var password: String = "123456"
private[this] var money: Int = 100
def t():Unit = {
println(money)
}
}
class Son extends Person(){
//2.protected 在子类中可访问
println(birthday)
//3.protected 在子类中不能访问
//println(password)
}
def main(args: Array[String]): Unit = {
val p1 = new Person()
println(p1.name)
//2.protected在类的外部无法访问
// println(p1.birthday)
new.Son
//3.在伴生对象中访问 类的私有成员
Person.test(p1)
}