Programming in scala学习笔记(3)Classes and Objects
1. 任何方法中传入的形参都是val的,是不能在方法中改变它的。
2. 如果函数体很小的话可以去掉大括号
注意上面的private,默认不加是public
3. 分号分隔语句
如果语句在同一行的话,可以用分号分隔
4. Singleton Objects
Scala跟java不一样,没有static成员,然而,scala有Object,Object的定义类似于class。就是把class换成object,首字母都是小写。
当发现object和class重名时,这个object就称为companion object(伴随对象),这个class就称为object的companion class(伴随类),伴随类和伴随对象必须同时写在一个源文件中。两个可公用对方的private成员。
示例程序如下:
============================================
=======================================================
上面代码中有一行:val acc =new ChecksumAccumulator;这里用了new,说明这里是实例化一个class的对象,object是不能用new实例化的,但是object可以继承父类和trait。且两者可同时继承。
调用object中的属性或者方法直接写object的名字打点”.”调用,跟java里面static元素调用是一样一样一样的。
没有与class同名的object叫做standalone object,用法主要有:
l 作为一个实用的工具函数集合;
l 作为一个scala的应用入口。
5. Scala application(scala应用程序)
为了能够执行scala的应用程序,必须写入口代码。
入口代码的特征:
Standalone Object中;
定义一个main主函数;
主函数参数类型是Array[String],无返回值(返回值是Unit类型)
这个函数入口用到了另外一个object——CheckSumAccumulator,这个object是伴随object,要将伴随的class和object写到一个文件中,然后跟object Summer一起编译。编译的语句如下:
用scalac或者fsc(for fast scala compiler)编译。
编译完之后,执行语句:
6.Scala application Trait
继承trait——Application,然后在object中写自己的代码就可以了。
这个有个缺点,就是不能往里传参。
版权声明:本文为博主原创文章,未经博主允许不得转载。