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. swing自定义border

    public class MyBorder extends AbstractBorder { private static final long serialVersionUID = 1L; priv ...

  2. ansible普通用户su切换

    [root@361way.com ~]# cat /etc/ansible/hosts [test01] 10.212.52.14 ansible_ssh_user=test ansible_ssh_ ...

  3. Git教程首页

    Git 教程 Git 是一个分布式的版本控制和源代码管理系统,强调速度. Git 最初由Linus Torvalds设计和开发为Linux内核开发管理代码. Git是GNU通用公共许可证版本2的条款下 ...

  4. CentOS 7系统LAMP配置PHP-FPM的示例

    CentOS 7 系统出来有一段时间了,今天我们来看在vps中的 CentOS 7 中给lamp环境配置php-fpm的过程,希望文章可以帮助到各位. CentOS 7 已经发布,并且采用 Apach ...

  5. php 扫描 下载 apk

    $file = 'C:\WebSiteDirectory\CarparkWeixinBackend\Dplus.apk'; if (file_exists($file)) { header('Cont ...

  6. jq 获取当前屏幕高度

    alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...

  7. Android 开发 打开默认浏览器发生崩溃

    Android 开发 打开默认浏览器发生崩溃. 代码如下: Intent intent = new Intent(); intent.setAction("Android.intent.ac ...

  8. underscore-1.8.3-analysis.js

    // Underscore.js 1.8.3 // http://underscorejs.org // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud an ...

  9. SAP 物料移动类型查询表

    Goods movement w/o referenceB Goods movement for purchase orderF Goods movement for production order ...

  10. soapui-使用groovy脚本执行用例请求

    import com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext CURRENT_TESTCASE = testRunner.testCa ...