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

来源:互联网 发布:网络摄像头哪种好 编辑:程序博客网 时间:2024/05/21 09:22

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中写自己的代码就可以了。

 

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

1 0
原创粉丝点击