Scala开发教程(4): 类和对象 (一)
来源:互联网 发布:德国人身高体重的数据 编辑:程序博客网 时间:2024/06/10 05:58
有了前面的Scala基础,从本篇开始由浅到易逐步介绍Scala编程的各个方面,博客不可能做到面面俱到,还是希望你有些编程基础,尤其是有些面向对象的编程基础,如Java,C++,C#等更好。出支持函数化编程外,Scala也是一个纯面向对象的编程语言。本篇和下篇介绍Scala的类和对象.
首先介绍Scala的类定义,我们以一个简单的例子开始,创建一个计算整数累计校验和的类ChecksumAccumulator
1
class
ChecksumAccumulator{
2
private
var
sum
=
0
3
def
add(b
:
Byte)
:
Unit
=
sum +
=
b
4
def
checksum()
:
Int
=
~ (sum &
0xFF
) +
1
5
}
可以看到Scala类定义和Java非常类似,也是以class 开始,和Java不同的,Scala的缺省修饰符为public ,也就是如果不带有访问范围的修饰符public,protected,private,Scala缺省定义为 public。类的方法以def定义开始,要注意的Scala的方法的参数都是val类型,而不是var类型,因此在函数体内不可以修改参数的值,比如如果你修改add方法如下:
1
def
add(b
:
Byte)
:
Unit
=
{
2
b
=
1
3
sum+
=
b
4
}
此时编译器会报错:
/root/scala/demo.scala:5: error: reassignment to val
b=1
^
one error found
类的方法分两种,一种是有返回值的,一种是不含返回值的,没有返回值的主要是利用代码的“副作用”,比如修改类的成员变量的值或者读写文件等。Scala内部其实将这种函数的返回值定为Unit(类同Java的void类型),对于这种类型的方法,可以省略掉“=”好,因此如果你希望函数返回某个值,但忘了方法定义中的“=”,Scala会忽略方法的返回值,而返回Unit。
再强调一下,Scala代码无需使用“;”结尾,也不需要使用return返回值,函数的最后一行的值就作为函数的返回值。
但如果你需要在一行中书写多个语句,此时需要使用“;”隔开,不过不建议这么做。你也可以把一条语句分成几行书写,Scala编译器大部分情况下会推算出语句的结尾,不过这样也不是一个好的编码习惯。
- Scala开发教程(4): 类和对象 (一)
- Scala开发教程(5): 类和对象 (二)
- Scala教程(六)类、属性和对象字段
- scala------ 类和对象
- scala类和对象
- Scala 类和对象
- scala 类和对象
- scala-类和对象
- scala的类和对象
- Scala学习-类和对象
- scala教程(一)
- Scala教程(一)走进Scala世界
- Scala教程(一)走进Scala世界
- Scala教程(一)走进Scala世界
- Scala开发教程(16): 没有“break”和“continue”的日子
- scala 入门开发一
- Scala入门到精通——第六节:类和对象(一)
- Scala入门到精通——第六节:类和对象(一)
- hdu 3360 National Treasures(二分图匹配--最小点覆盖)
- 手机Android音视频采集与直播推送,实现单兵、移动监控类应用
- php head问题
- SSH
- android中Logcat中颜色的意思
- Scala开发教程(4): 类和对象 (一)
- Unity开发优化之资源优化
- 项目测试流程总结
- Matlab图像标题_title
- 数据库范式
- UVA - 1605 Building for UN 水题
- 在执行器中分离任务的启动与结果的处理
- Compare Version Numbers--LeetCode
- mysql数据类型