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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuqingdeqing/article/details/86499776

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特质执行的初始化代码。

猜你喜欢

转载自blog.csdn.net/wuqingdeqing/article/details/86499776