scala private 和 private[this] 的區別



class PackageStudy {
  private var a = 0
  private[this] var b = 1
  // 只能在類內部使用,對象都不能直接使用

  def getb(): Int = b

  var m = PackageStudy.c
  //  var n = PackageStudy.d // 在伴生類中直接訪問伴生對象的 private[this] 變量,會報錯。
  var o = PackageStudy.get_d()


}

object PackageStudy {

  private var c = 2
  private[this] var d = 3

  // 伴生對象的 private[this] 變量,也只能在對象內部使用,在伴生類中無法直接使用。
  def get_d(): Int = d


  def main(args: Array[String]): Unit = {
    val a_obj = new PackageStudy
    println(a_obj.a)
    //    println(a_obj.b) //直接訪問 類中的 private[this] 的變量,會報錯
    println(a_obj.getb())


    println(a_obj.m)
    println(a_obj.o)

  }
}

[this]這其實是 private 和project 的作用范圍的一種情況, private[ X]表示 “直到”X 都可以,。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM