scala:package

作者: 木山手札 | 来源:发表于2020-01-28 16:16 被阅读0次
    • package可以多次声明
    package org.foo
    package bar.example
    // 完整的包路径是org.foo.bar.example
    
    • package内只能声明类,不能声明变量、方法,从面相对象角度看包也是对象,在包里声明变量和方法使用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() //调用包对象中的方法
            println(book) // 调用包对象中的属性
          }
        }
      }
    }
    

    相关文章

      网友评论

        本文标题:scala:package

        本文链接:https://www.haomeiwen.com/subject/mlqmthtx.html