在类中用private修饰的字段,只能在本类和其伴生对象中访问。
在类中用private[this]修饰的字段,只能在本类中访问。
类名前加private[包名]是指包访问权限,只有这个包有该类的访问权限。
构造器参数列表前加private是指伴生对象的权限,只有伴生对象才能访问。
package test
/**
* @author: whua
* @create: 2018/09/30 17:45
*/
private[test] class PrivateDemo private(val gender: Int, var faceValue: Int) {
private val name = "yingying"
private[this] var age = 18
private def sayHello(): Unit = {
println(s"yingying's age is $age")
}
}
object PrivateDemo {
def main(args: Array[String]): Unit = {
val privateDemo = new PrivateDemo(0, 90)
privateDemo.sayHello()
}
}
object Test1 {
def main(args: Array[String]): Unit = {
//会报错,无法在Test1中创建PrivateDemo对象
// val privateDemo = new PrivateDemo(0, 90)
// println(privateDemo.faceValue)
}
}