scala程序设计
2016-07-19 21:43
134 查看
4.4 单例对象
在scala中创建单例对象使用object关键字,因为单例对象无法初始化,所以不能给他的主构造函数传递参数。
例子:
4.5 独立对象和伴生对象
上边的MarkerFactory是个独立对象的例子。他并未自动关联到任何一个类上,即便他管理了Marker的实例。scala可以创建一个关联到类上的单例,同
类共享相同的名字,称为伴生对象,对应的类就称为伴生类
每个类都可以有伴生对象,他们跟伴生类写在同一个文件中。伴生对象在scala中很常见,他们提供了在类一级进行操作的便捷方法。
同时,他们还可以作为scala缺少静态成员的变通措施。
5.2 any类型
在scala李,any让我们可以持有任何类型对象的引用。any是一个抽象类,它有如下方法:!=(), ==(), anInstanceOf(), equals(), hashCode(),
isInstanceOf(), toString()
Any的直接后代是AnyVal和AnyRef, 对于所有可以映射为java基类的scala类型,比如,Int,Double,AnyVal充当着他们的基类。另一方面,
AnyRef是所有引用类型的基类。AnyVal没有提供任何额外的方法,AnyRef则包含了java的object方法,比如notiry(), wait()和finalize()
AnyRef直接映射为java的object,在scala里使用它,就如同在java李使用object一样。
在scala中创建单例对象使用object关键字,因为单例对象无法初始化,所以不能给他的主构造函数传递参数。
例子:
4.5 独立对象和伴生对象
上边的MarkerFactory是个独立对象的例子。他并未自动关联到任何一个类上,即便他管理了Marker的实例。scala可以创建一个关联到类上的单例,同
类共享相同的名字,称为伴生对象,对应的类就称为伴生类
每个类都可以有伴生对象,他们跟伴生类写在同一个文件中。伴生对象在scala中很常见,他们提供了在类一级进行操作的便捷方法。
同时,他们还可以作为scala缺少静态成员的变通措施。
5.2 any类型
在scala李,any让我们可以持有任何类型对象的引用。any是一个抽象类,它有如下方法:!=(), ==(), anInstanceOf(), equals(), hashCode(),
isInstanceOf(), toString()
Any的直接后代是AnyVal和AnyRef, 对于所有可以映射为java基类的scala类型,比如,Int,Double,AnyVal充当着他们的基类。另一方面,
AnyRef是所有引用类型的基类。AnyVal没有提供任何额外的方法,AnyRef则包含了java的object方法,比如notiry(), wait()和finalize()
AnyRef直接映射为java的object,在scala里使用它,就如同在java李使用object一样。
相关文章推荐
- I-The Interview Process
- 如何克隆git上的某一个分支的代码
- 决策树-GBDT-RF-Xgboost
- 【LA3942-Remember the word 】Trie
- GridLayout布局
- mysql 首次使用
- JSON.parse()和JSON.stringfy()
- 校外实习-7.19
- 运用特征脸方法的基于Opencv的猫脸检测实现
- Qt绘制系统(Paint System)
- 各资源下载网站
- HDOJ 1070 Milk ( 喝牛奶问题 )
- 稳定排序(sort+结构体)
- hdoj 5499 SDOI 【结构体排序】
- EMC之SDRAM
- 关于新版SDK报错You need to use a Theme.AppCompat theme的两种解决办法
- AS 自动生成选择器 SelectorChapek
- C++中volatile及编译器优化
- 各种数据库的JDBC驱动下载及连接字符串URL写法
- 汇编---跳转指令