相同點:
Scala中創建包的方式與Java相同,使用同樣的關鍵字:package
/**
* @author [email protected]
* @date 2019/8/26
*/
package com.fengling.chapter06 {
// 創建包hi
package hi {
object PackageDemo {
def main(args: Array[String]): Unit = {
val animal = new Animal
println(animal)
}
}
class Animal {
var name = ""
var age: Int = _
}
}
// 創建包hello
package hello {
object Greet {
def main(args: Array[String]): Unit = {
val hello = new Hello
println(hello)
}
}
class Hello {
}
}
}
不用的地方是:
- Scala允許在一個scala文件中定義多個package名
編譯出來的效果:
包引入
/**
* @author [email protected]
* @date 2019/8/27
*/
object PackageImportDemo001 {
def main(args: Array[String]): Unit = {
}
def test(): Unit = {
import scala.collection.mutable.{HashMap, HashSet}
var map = new HashMap()
var set = new HashSet()
}
}
import scala.beans.BeanProperty
class User {
@BeanProperty var name: String = _
}
class Animal {
@BeanProperty var name = ""
}
/**
* @author [email protected]
* @date 2019/8/27
*/
object PackageDemo003 {
def main(args: Array[String]): Unit = {
// 引入不同package下的同名類的時候,可以重命名類
import java.util.{HashMap => JavaHashMap}
import scala.collection.mutable._
val map = new HashMap()
val javaMap = new JavaHashMap()
}
}
- import語句可以出現在scala文件中的任意地方,不侷限與文件的頂部
- 導入包中的所有類,Java使用星號( * ),scala使用下劃線 ( _ )
- 導入包中某幾個類,可以使用大括號 { 類名 }
- 引入不同package下的同名類的時候,可以重命名類
- 避免衝突,可以使用(_, _)隱藏掉某個類