scala入门-08 apply方法和单例对象的使用

首先 在scala下的 org.scala.clazz下创建UsageOfApply.scala

我们做过Java开发都知道 main方法中的对象都是静态的,而scala object对象的方法都是静态方法

接下来 我们看下 apply是如何使用的

当 val applyTest = new ApplyTest() 会导致apply方法的调用并返回该方法调用的值,也就是ApplyTest的实例化对象

Class中也可以由apply方法,其使用方法如下所示:

由于 object中的方法和属性都是静态的,所以就是单例对象的理想载体了,示例代码如下:

其实,object本身就是一个单例对象

时间: 2024-08-25 04:16:08

scala入门-08 apply方法和单例对象的使用的相关文章

【Scala】单例对象与伴生对象

Scala的单例对象 Scala不能定义静态成员,而是代之定义单例对象(singleton object).以object关键字定义. 对象定义了某个类的单个实例,包含了你想要的特性: object Accounts{ private var lastNumber = 0 def newUniqueNumber() = { lastNumber += 1; lastNumber} } 当你在应用程序中需要一个新的唯一账号时,调用Account.newUniqueNumber()即可. 对象的构造

转:【Scala】单例对象与伴生对象

转自:http://blog.csdn.net/jasonding1354/article/details/46507595 Scala的单例对象 Scala不能定义静态成员,而是代之定义单例对象(singleton object).以object关键字定义. 对象定义了某个类的单个实例,包含了你想要的特性: object Accounts{ private var lastNumber = 0 def newUniqueNumber() = { lastNumber += 1; lastNum

apply 伴生对象 单例对象

apply(): 当类或者对象有一个主要用途时,apply方法提供了很好语法机制 scala> class Foo {} defined class Foo scala> object FooMaker { | def apply() = new Foo | } defined module FooMaker scala> val newFoo = FooMaker() newFoo: Foo = [email protected] 写在object中时,使用方法:类名() 或者 sca

scala学习手记14 - 单例对象

java中的单例模式都很熟悉了:简单地说就是一个类只能有一个实例.在scala中创建单例对象非常简单,创建类时使用object关键字替换class即可.因为单例类无法初始化,所以不能向它的主构造函数传递参数. 下面是一个单例的示例: class Marker(val color: String) { println("Creating " + this) override def toString(): String = "marker color " + colo

Scala的单例对象

通常,一个类对应一个伴生对象,其方法就跟Java中的静态方法一样,举例:BigInt类的BigInt伴生对象有一个生成指定位数的随机素数的方法probablePrime,在REPL中运行下列代码: object HelloWorld{ def main(args:Array[String]){ for( i<- 1 to 10){ println(BigInt.probablePrime(10,scala.util.Random)); } } } 得到的结果如下: 523 977 839 911

Scala 单例对象

环境: CentOS 6.3, eclipse 单例对象:类是指用class定义的scala 对象,如果用object替换class关键字,那么这个就叫单例对象,sigleton object, 单例对象不可以使用new 关键字生成新的对象实例下面使用三种使用校验和的方式来解释大家的疑问. ChecksumAccumulator.scala //定义class(类) ChecksumAccumulator 和其伴生单例对象(object) ChecksumAccumulator package

探索Scala(3)-- 单例对象

研究一下Scala语言的单例对象(Singleton Objects),为下一篇文章做准备. static不是关键字 上一篇文章提到过,interface并不是Scala语言关键字,可以自由使用.同样,static在Scala里也没有特殊的含义,也是可以自由使用的,如下面代码所示: 单例对象 Java并不是完美的面向对象语言,包括很多缺陷,比如允许static字段和方法,primitive类型,等等.Scala语言在这些方面都有所改进,所以号称是比Java更OO的语言.既然去掉了static关键

作为UIApplication单例对象的方法 openURL方法的变化

作为UIApplication单例对象的方法 openURL: 在iOS开发中经常用来实现在当前应用打开外部链接的需求比如跳转到其他应用,跳转应用隐私设置界面;还有相关API canOpenURL: 进行跳转前判断.而这个古老(iOS2时出现)的 openURL 方法将被现今iOS10出现的新API openURL:options:completionHandler: 所替代. 虽然关于该API的官方文档补充完全,但所提供的信息足够能让开发者简单了解使用最新API打开外部链接的API究有何异同.

Scala学习 -- 单例对象

Scala 比 Java 更面向对象一点,是 Scala 的类不允许静态(static)成员.对此类使用场景,Scala 提供了 单例对象(object).单例对象的定义看上去跟类定义很像,只不过 class 关键字被换成了 object 关键字. 在事例中单例对象名叫 ChecksumAccumulator, 跟前一个例子中的类名一样. 当单例对象跟某个类公用同一个名字时,它被称作这个类的 伴生对象(companion object). 必须在同一个源码文件中定义的类和类的伴生对象.同时,类又