scala的类和对象与往常意义上的对象是相似的,但是也还有一些不同之处。
在Java的类中,成员和方法区分得比较清晰。但在scala中,区分没有那么明显,笼统的成为成员。
字段用val/var定义,指向对象的变量。
方法用def定义,包含了可执行代码。
Java中的public访问级别,在Scala中是默认的,也就是不加访问级别的字段,默认就是public级别
此外,在Scala中的函数/方法的返回值,如果没有显式的返回语句,默认就是最后一次计算的值。在Scala中,方法推荐尽量少使用返回语句,尤其是多条返回语句
在Scala中,通常定义副作用为能够改变方法之外的某处状态或I/O活动的方法
比如
class CheckSumAccmulator{
private var sum = 0
def add(b : Byte) {sum += b}
def checkSum(): Int = ~(sum &0xFF) + 1
}
在上面的add方法中,add改变了方法外的sum值,便称为具有副作用,但有时候,这种副作用是必须的。