Scala学习笔记(三)——类和对象

3.1 类、字段和方法

类和字段与java类似。

方法推荐尽量避免使用返回语句,尤其是多条返回语句。代之可以把每个方法当作是创建返回值的表达式。如下:

3.2 分号推断

除非以下情况的一种成立,否则行尾被认为有分号:

1.由一个不能合法作为语句结尾的字结束。

2.下一行开始不能作为语句开始。

3.行结束与括号内部。

3.3 Singleton对象

单例对象用object关键字代替class。

当单例对象与某个类共享一个名称时,它就被称为是这个类的伴生对象。类和它的伴生对象必须定义在一个源文件里。类被称为是这个单例对象的伴生类,类和它的伴生对象可以互相访问其私有成员。

类和单例对象的差别是,单例对象不带参数,而类可以。因为单例对象不是用new关键字实例化的,所以没机会传递给它实例化参数。每个单例对象都被实现为虚构类的实例,并指向静态的变量,因此它们与java静态类有着相同的初始化语义。单例对象在第一次被访问的时候才会被初始化。

3.4 Scala程序

能够独立运行的Scala程序,就必须创建有main方法的单例对象。任何拥有合适前面main方法的单例对象都可以用来作为程序的入口点。

3.5 Application特质

如图:

能这么做,是因为Application声明了带有合适签名的main方法,并被单例对象继承,使他像Scala程序那样。花括号之间的代码被收集进了单例对象的主构造器,并在类被初始化时执行。

这样比main方便,不过也有缺点。首先,如果想访问命令行参数就不能用,因为args不可访问。其次,因为某些JVM线程里的局限,如对多线程需要自行编写main。最后,某些JVM的实现没有优化被Application特质执行的初始化代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值