1.单例对象
2.伴生对象
3.扩展类或特质的对象
4.apply方法
5.应用程序对象
6.枚举
1.单例对象
static没有静态方法或静态字段,通过object实现类似效果:
2.伴生对象
一个类,既有实例方法,又有静态方法,通过“伴生对象达到同样的目的:
类和它的伴生对象可以相互访问私有特性,它们必须存在于同一个源文件中。
类
伴生对象:
粘贴模式:
键入:paste
然后键入或粘贴类和对象的定义,最后以Ctrl+D退出粘贴模式
3.扩展类或特质的对象
一个有用的场景是给出可被共享的缺省对象。
DoNothingAction对象可以被所有需要这个缺省行为的地方共用。
4.apply方法
当遇到如下形式的表达式时,apply方法就会被调用:
Object( 参数1, 参数2,... ,参数n)
5.应用程序对象
除了每次都提供自己的main方法外,你也可以扩展App特质,然后将程序代码放入构造器方法体内
如果你需要命令行参数,则可以通过args属性得到
6.枚举
scala并没有枚举,但是,标准类库提供了一个Enumeration助手类,用于产生枚举。
Value方法调用初始化枚举中的所有可选值。每次调用Value方法都返回内部类的新实例,该内部类也叫作Value。
如果你觉得TrafficLightColor.Red这个前缀太长,可以使用导包的形式:
遍历:
查找: