上接scala学习计算开始基本语法2
接上一篇的一点尾巴
第九步:读取文件操作
读取文件中的每行,读取文件,然后每行打印出来,使用相对路径,data目录里放在工程里。
import scala.io.Source
val file = Source.fromFile("data/data_test.txt")
for(f<-file.getLines()){
println(f)
}
Scala中,引入包的方式和java一样,都是使用import,但是要引入所有的包的时候,使用的是_,不是*。
下面进入今天的重点
类和对象 (一)
Scala支持函数式编程,而且也是一种纯面向对象的编程方式。现在介绍下类和对象。介绍类的定义,这里使用了引路蜂的列子,定义一个计算整数累加器校验和。
class CheckSumAccumulator {
private var sum=0;
def add(b:Byte):Unit = sum += b
def checkSum():Int = ~(sum&0xff)+1
//错误
/*def add2(b:Byte):Unit={
b=b+2
}*/
定义类和java是类似的,也是以class开始,但是不一样的是,没有显示给出限定符,Scala默认是Public。类中的定义方法使用的def,而且方法中的参数默认是val类型的,所以在方法中如果要修改参数的值,编译不会通过,会报错reassignment to val。
类的方法有2种,一种是有返回值的,一种是没有返回值的,没有返回值的方法,使用的是函数的副作用,读写成员变量的值或者是读写文件什么的。这种没有返回值的函数的返回类型为Unit,类似java中的void,对于这中方法可以省略等号,如果希望返回一个值,必须加上返回类型,没加的话,默认为Unit哦。add方法也可以这样定义` def add2(b:Byte)=sum+b’
一行中如果要写几条语句,可以使用;分割,但是不建议。
返回值的时候不需要return,默认方法的最后一条语句的结果就是返回值。