上一节中的单例对象MarkerFactory 就是一个独立对象的例子。尽管它管理着Marker类,但是它并没有关联到任何类上。 scala也可以创建关联到类上的对象。这样的对象同类共享同一个名字,这样的对象称为伴生对象,对应的类就称为伴生类。在scala里,类和伴生对象没有界限,它们互相可以访问彼此... ...
分类:
其他好文 时间:
2016-06-20 00:21:23
阅读次数:
147
孤立对象是只有一个object关键字修饰的对象。 该对象会编译成两个class文件, 一个是以孤立对象的名字命名的class, 一个是以孤立对象的名字后面加上一个$字符命名的class, 这个class又叫做虚构类。 源码中的孤立对象中的字段和方法, 都被编译成以孤立对象的名字命名的class中的静态方法, 这些静态方法都会访问单例的虚构类对象。 虚构了是传统意义上的单例模式, 并且在类初始化的...
分类:
其他好文 时间:
2016-05-27 12:38:20
阅读次数:
279
《Scala编程》这本书中, 把孤立对象和伴生对象都叫做单例对象。孤立对象指的是只有一个使用object关键字定义的对象, 伴生对象是指有一个使用object关键字定义的对象, 除此之外还有一个使用class关键字定义的同名类, 这个同名的类叫做伴生类。在Scala中单例对象这个概念多少都会让人迷惑, 按《Scala编程》这本书中的说法, 使用object关键字修饰的对象就叫做单例对象。其实这里的...
分类:
其他好文 时间:
2016-05-27 12:37:42
阅读次数:
280
Case Class的特别之处在于:
编译器会为Case Class自动生成以下方法:
equals & hashCode
toString
copy
编译器会为Case Class自动生成伴生对象
编译器会为伴生对象自动生成以下方法apply
unapply
这意味着你可以不必使用new关键字来实例化一个case class.
case class的类参数在不指定val/var修饰时,会自动编...
分类:
其他好文 时间:
2016-03-17 16:40:16
阅读次数:
248
代码示例:objectListObjectOps{
defmain(args:Array[String]):Unit={
//构造List
//apply方法
println(List.apply(1,2,3,4,5))//List(1,2,3,4)其实就是调用apply方法
//生成重复数据的列表
//目前使用的2.11.7版本,已经废弃了make方法
println(List.fill(100)(1))//生成100个..
分类:
其他好文 时间:
2016-02-15 16:44:40
阅读次数:
184
鲁春利的工作笔记,好记性不如烂笔头apply需要构造有参数需求的伴生对象时,可定义并使用apply方法。classHelloWorld(varm:String,varn:Char){
println("I‘mclassHelloWorld!");
defspeak(){
println("ClassHelloWorldSpeak.");
}
}
objectHelloWorld{
defapply(n:Char)=newHe..
分类:
其他好文 时间:
2015-12-29 06:26:09
阅读次数:
196
1:伴生对象与apply方法如果一个class与一个object具有相同的名字,那么我们就认为它们互为伴生。object为class的伴生对象。如下图所示,object Apply为class Apply的伴生对象。需要注意的小细节是,伴生对象的apply函数哪怕没有参数也需要加上一对”()”.cl...
分类:
移动开发 时间:
2015-12-21 17:40:48
阅读次数:
203
最基本的练习~:使用伴生对象:object holder{class Foo{ private var x = 5}object Foo{def im_in_yr_foo(f: Foo) = f.x}}import holder.Fooval x = new FooFoo.im_in_yr_foo(...
分类:
其他好文 时间:
2015-11-02 15:40:31
阅读次数:
220
今天来看一下List伴生对像的操作方法让我们来看下代码println(List.apply(1,2,3))//等同于List(1,2,3)println(List.range(1,4))//List(1, 2, 3)println(List.range(1,6,2))//List(1, 3, 5),...
分类:
其他好文 时间:
2015-08-30 00:37:22
阅读次数:
215