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)
} }

  

[scala] scala 对象(六)的更多相关文章

  1. 6、scala面向对象-对象

    一.对象 1.object object,相当于class的单个实例,通常在里面放一些静态的field或者method,第一次调用object的方法时,就会执行object的constructor, ...

  2. Programming In Scala笔记-第六章、函数式对象

    这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等. 一.Rational类定义和构造函数 1.定义一个空类 ...

  3. scala编程(六)——函数式对象

    Rational 的式样书 分数:rational number 是一种可以表达为比率 d n 的数字,这里的 n 和 d 是数字,其中 d 不能为零.n 被称作是分子:numerator,d 被称作 ...

  4. 《快学Scala》第六章 对象 第七章 包和引入

  5. Scala 系列(六)—— 常用集合类型之 List & Set

    一.List字面量 List 是 Scala 中非常重要的一个数据结构,其与 Array(数组) 非常类似,但是 List 是不可变的,和 Java 中的 List 一样,其底层实现是链表. scal ...

  6. Scala学习十六——XML处理

    一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的at ...

  7. scala伴生对象

    package com.test.scala.test /** * 伴生对象指的是在类中建立一个object */ class AssociatedObject { private var count ...

  8. Scala Singleton对象

    Scala Object: scala没有静态的修饰符,例如Java中的static.但是Scala提供了Object类型,object下的成员都是静态的,比较像Java的静态类.不同在于Scala的 ...

  9. Scala函数式对象-有理数

    有理数类的表示 实现规范:支持有理数的加减乘除,并支持有理数的规范表示 1.定义Rational 首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我 ...

随机推荐

  1. android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧

    想做一个动画,一个会跑的小人,从屏幕右侧跑道右侧,于是做了个尝试,上图: 要完成这样需要三步: 1. 做一个 帧动画 (frame animation),由多张图片组成,组成小人连续跑动的样子. 2. ...

  2. Intellij IDEA 将工程转换成maven工程 详解

    1> 右键工程,点击 Add Framework Support   2> 选中 Maven,再点击 OK   3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...

  3. MongoDB 比较适用哪些业务场景?

      在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB ...

  4. 给Libgdx的ShapeRenderer开启抗锯齿

    http://blog.rpsg-team.com/?p=134 ——————————————————————————————————————————————————————————————————— ...

  5. c:url标签

    <c:url>标签 <c:url>标签的主要作用是按照特定的重写规则重新构造URL,它的基本语法为: <c:url   value="原始URL"   ...

  6. 微信小程序——wxParse使用方法

    wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...

  7. node学习笔记2——搭建服务器

    搭建服务器关键词: require('http') —— 请求 node 里面的 http 模块 createServer —— 创建一个服务器 request —— 请求 response—— 响应 ...

  8. 百度地图的demo提示key验证错误!错误码:230;

    在已经有BaiduMap的APIKey后使用AndroidStudio导入Baidu地图的as版的demo,提示key验证错误!错误码:230; 首先,因为百度地图demo中用自己的keystore文 ...

  9. Mac OS, Mac OSX 与Darwin

    作为收购 NeXT 公司的结果,苹果公司获得了 NeXTSTEP 架构中的 Mach 和 Objective-C 等设计.尽管 NeXTSTEP 本身已经不再发展了,但是其中的组件在 OS X 中获得 ...

  10. confluence + 禅道安装教程

    都是从网上拿的 1. 搭建confluence BE82-LO81-4O25-THDD AAABMQ0ODAoPeJxtkE1rwzAMhu/+FYadXepkYd3AsDQ2rCwfZUkHO7qp ...