[scala] scala 对象(六)

1、单例对象和伴生对象

2、定义单利对象的apply方法可不通过构造器直接创建对象

3、extends 来扩展单例对象

4、枚举实现

/**
* 单例对象
*
* @author xuejz
* @date 2017-04-13 16:41
* @since 1.8
*/ //单例对象
class Parent extends Action(12){
//调用伴生对象的无参方法
val pson =if(Parent.son==0) 1 else Parent.newSon val son=0 }
//伴生对象
object Parent{
private var son:Int=0
private def newSon():Int={son+=1;son} //定义apply方法
def apply(id:Int)={
new Parent
}
}
/**
* @author xuejz
* @date 2017-04-13 16:55
* @since 1.8
*/
class Action(val defineId:Int){ private val init:Int=defineId
var createTime = new Date() def id=init
def id_=(newId:Int):Unit=this.id=id
}  

枚举

/**
* 枚举类
* 继承Enumeration
* @author xwolf
* @date 2017-04-19 23:17
* @since 1.8
*/
object Colors extends Enumeration{
val red,yellow,green,black=Value
val yarn=Value("yarn") }

  

 

 测试:

object ParentTest {

  def main(args: Array[String]): Unit = {
val parent = new Parent
println(parent.pson)
println(parent.id)
println(parent.createTime) //定义apply 方法
val p =Parent(43)
println(p.id)
//枚举调用
println(Colors.red)
println(Colors.withName("black"))
println(Colors.yarn)
} }

  

上一篇:DEDECMS-helper小助手扩展


下一篇:文件MD5查看器工具与源码实现及下载