Programming in scala学习笔记(三)Classes and Objects
2015-08-23 23:34
525 查看
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中写自己的代码就可以了。这个有个缺点,就是不能往里传参。
相关文章推荐
- Objective-C 编程语言官网文档(五)-属性的声明
- Objective-C入门教程——Done!
- 关于a different object with the same identifier value was already associated with the session错误的一种解决方法
- Volley StringRequest和JSONObjectRequest使用几个细节
- Objective-C特性:Runtime
- Object -C 数组 -- 笔记
- php get_object_vars()函数
- 【JavaSE】day02_正则表达式 、 Object 、 包装类
- Objective-C 【类对象及SEL存储方式】
- Objective-C 【类对象及SEL存储方式】
- Objective-C 【多态】
- Objective-C 【多态】
- Spring Object/XML mapping example
- Spring Object/XML mapping example
- Objective-C中,ARC下的 strong和weak指针原理解释,objective-cweak
- mysql_fetch_array(),mysql_fetch_object,mysql_fetch_rows区别
- org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {解决方法
- Objective-C关于协议protocol与代理degelate以及protocol的类型限制
- 内部类,异常,Object类
- JSONObject使用方法