scala:package

  • package可以多次聲明
package org.foo
package bar.example
// 完整的包路徑是org.foo.bar.example
  • package內(nèi)只能聲明類,不能聲明變量、方法,從面相對象角度看包也是對象,在包里聲明變量和方法使用package object
package object foo{ // 在foo包下
  val field:String = "A"
  def function(i:Int):Unit={}
}
  • scala中幾乎所有的語法都支持嵌套聲明
package foo1 {
  package object foo2 { // 包對象
    val book = "scala"
    def fun(): Unit = {
      println("包對象")
    }
  }

  class BarA { // 包中定義類
    var name: String = _ // 類中可以聲明屬性
  }

  package foo2 {
    class BarA {
      var age: Int = _
    }

    object PackageExample {
      def main(args: Array[String]): Unit = {
        val bar1 = new BarA //就近原則,使用foo2包下的BarA
        bar1.age = 3
        
        val bar2 = new foo1.BarA //明確使用foo1包下的BarA
        bar2.name = "bar"

        fun() //調(diào)用包對象中的方法
        println(book) // 調(diào)用包對象中的屬性
      }
    }
  }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容