Scala学习笔记(一):类和对象、函数和方法(和Java的不同的地方)
参考文章:scala(一)方法&函数
参考教程:类和对象
最近为了做专业课大数据计算基础的大作业在学Scala。学到类和对象,方法和函数的时候和以前的Java知识对照有点捋不太清,写篇笔记记录一下。
- 类和对象:
1.Scala的语法中没有static,实现静态功能的是单例对象Object,使用Object中的方法,可以直接使用,不需要像Class一样要先new一个对象。所以main方法的定义需要在Object中。
附Scala中main方法的定义:
def main(args:Array[String]){}
2.Object和Class定义在同一个文件中且和Class同名时,Object是Class的伴生对象,Class是Object的伴生类,伴生对象和伴生类可以互相访问对方的私有成员。
3.Scala 使用类参数,并把类定义和主构造函数合并在一起,在定义类的同时也定义了类的主构造函数。Object定义时不能带参数。也不能再new一个object对象。
4.Scala不要求public类定义和其文件名相同。 - 方法和函数:
1. Scala在class中定义的方法的参数都是val类型,即常量,而不是var类型,即变量,因此在函数体内不可以修改参数的值。
def add(b:Byte) :Unit ={ b=1 sum+=b }
这段代码在编译时会报错,因为方法内试图修改参数b的值为1。
2.当忽略方法定义中的'='时,Scala会忽略此方法的返回值,而返回Unit(等同于Java的void)。
3.Scala也不需要使用return返回值(理论上允许使用),函数的最后一行的值就作为函数的返回值。
4.Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。 - 循环:
1.Scala不提供break和continue。
浙公网安备 33010602011771号