Programming in scala学习笔记(3)Classes and Objects

Programming in scala学习笔记(三)Classes and Objects

1. 任何方法中传入的形参都是val的,是不能在方法中改变它的。

Programming in scala学习笔记(3)Classes and Objects

 

2. 如果函数体很小的话可以去掉大括号

Programming in scala学习笔记(3)Classes and Objects

注意上面的private,默认不加是public

 

 

3. 分号分隔语句

如果语句在同一行的话,可以用分号分隔

Programming in scala学习笔记(3)Classes and Objects

 

4. Singleton Objects

Scala跟java不一样,没有static成员,然而,scala有Object,Object的定义类似于class。就是把class换成object,首字母都是小写。

当发现object和class重名时,这个object就称为companion object(伴随对象),这个class就称为object的companion class(伴随类),伴随类和伴随对象必须同时写在一个源文件中。两个可公用对方的private成员。

示例程序如下:

============================================

Programming in scala学习笔记(3)Classes and Objects

Programming in scala学习笔记(3)Classes and Objects

=======================================================

上面代码中有一行:val acc =new ChecksumAccumulator;这里用了new,说明这里是实例化一个class的对象,object是不能用new实例化的但是object可以继承父类和trait。且两者可同时继承。

调用object中的属性或者方法直接写object的名字打点”.”调用,跟java里面static元素调用是一样一样一样的。

Programming in scala学习笔记(3)Classes and Objects

没有与class同名的object叫做standalone object,用法主要有:

l  作为一个实用的工具函数集合;

l  作为一个scala的应用入口。

 

5. Scala application(scala应用程序)

为了能够执行scala的应用程序,必须写入口代码。

入口代码的特征:

Standalone Object中;

定义一个main主函数;

主函数参数类型是Array[String],无返回值(返回值是Unit类型)

Programming in scala学习笔记(3)Classes and Objects

这个函数入口用到了另外一个object——CheckSumAccumulator,这个object是伴随object,要将伴随的class和object写到一个文件中,然后跟object Summer一起编译。编译的语句如下:

Programming in scala学习笔记(3)Classes and Objects

Programming in scala学习笔记(3)Classes and Objects

用scalac或者fsc(for fast scala compiler)编译。

编译完之后,执行语句:

Programming in scala学习笔记(3)Classes and Objects

 

6.Scala application Trait

继承trait——Application,然后在object中写自己的代码就可以了。

Programming in scala学习笔记(3)Classes and Objects

 

这个有个缺点,就是不能往里传参。

版权声明:本文为博主原创文章,未经博主允许不得转载。