快学Scala(7)--包和引入

Posted on 2017-03-26 20:18  paulingzhou  阅读(114)  评论(0编辑  收藏  举报

串联式包名:

package com.zhou.impatient {

class Manager {

}

}

  此时com包和com.zhou包的成员在这里不可见

 

文件顶部标记法:

package com.zhou
package people
class Person {

}

  等价于:

package com.zhou{
  package people {
  class Manager {

  }
 }  
}

  

包对象:

package com.zhou.impatient

package object people {
  val defaultName = "John"
}

package people {
  class Person {
    var name = defaultName  //从包对象拿到的常量
  }
}

  

任何地方都可以声明引入

 

重命名和隐藏方法:

import java.awt.{Color, Font}
import java.util.{HashMap => JavaHashMap }
import scala.collection.mutable._

  这样一来,JavaHashMap就是java.util.HashMap,而HashMap则对应scala.collection.mutable.HashMap

  注:HashMap => _将隐藏某个成员而不是重命名它

隐式引入:每个Scala程序都隐式的以如下代码开始:

import java.lang._
import scala._
import Predef._

  故collection.mutable.HashMap相当于scala.collection.mutable.HashMap