scala 系列之 10scala 的 private 关键字

2021-08-24  本文已影响0人  海牛大数据_青牛老师

13 private关键字总结

修饰class

1、在class前面使用private可以被相同包(包含递归子包)访问(能引入类);

2、在class前面使用private[包名]代表是包的访问权限,只能指定的包名和子包(包含递归子包)下才能访问;

private修饰 主构造器、主构造器参数、辅助构造器、属性、方法, 当前类和伴生对象可以访问,其他对象不能访问;

private[this]修饰 主构造器、主构造器参数、辅助构造器、属性、方法, 只有当前类可以访问;

private[包名] 修饰 主构造器、主构造器参数、辅助构造器、属性、方法, 指定包名及子包可访问。

示例:

在class前面使用private可以被相同包(包含递归子包)访问(能引入类);

file

子包可引入

file

其他包不能引入

file

在class前面使用private[包名]代表是包的访问权限,只能指定的包名和子包(包含递归子包)下才能访问;

file file
package day03
// private[this] 修饰的主构造器,伴生对象和其他对象都不可访问
class PrivateDemo2 private[this] (val name:String) {
  var age:Int = _
// private[包名] 修饰的辅助构造器,同包名或递归子包都可访问
  private[day03] def this(name:String, age:Int ) = {
    this(name)
    this.age = age
  }
}
object PrivateDemo2{
  def main(args: Array[String]): Unit = {
//    val demo = new PrivateDemo2("hainiu")
    val demo = new PrivateDemo2("hainiu", 10)
  }
}
object privateDemo2Other{
  def main(args: Array[String]): Unit = {
//    val demo = new PrivateDemo2("hainiu")
    val demo = new PrivateDemo2("hainiu", 10)
  }
}

海汼部落原创文章,原文链接:http://hainiubl.com/topics/75745

上一篇 下一篇

猜你喜欢

热点阅读