theme: fancy
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
前言
Scala中的方法与函数:
在Scala中,它和Java一样也是拥有方法和函数。Scala的方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说,在类中定义的函数即是方法。
方法的定义格式:
def functionName ([参数列表]):[return type]={ function body return [expr] }
Scala中函数的定义:
// 定义函数的方式1,这种方式也可以用于定义方法 scala> def add(x:Int,y:Int):Int={ return x+y } add: (x: Int, y: Int)Int scala> add(1,2) res1: Int = 3
// 定义函数的方式2,用val,并且函数必须有参数列表,这种方式最常用 scala> val add2=(a:Int,b:Int)=>a+b add2: (Int, Int) => Int = <function2> scala> add2(1,2) res2: Int = 3
Scala中匿名函数:
匿名函数即是在定义函数的时候不给出函数名。 匿名函数是使用箭头“=>”定义的,箭头的左边是参数列表,箭头右边是表达式,表达式将产生函数的结果。
Scala面向对象的特性:
面向对象的核心是对象,若想要在应用程序中使用对象,就必须得先创建一个类。类是用于描述一组对象的共同特征和行为。
继承:
Scala和Java类似,只允许继承一个父类。\ Java只能继承父类中非私有的属性和方法,而Scala可以继承父类中的所有属性和方法。\ 子类重写父类中的抽象成员变量时,可以使用override,也可不用\ 如果子类要重写一个父类中的非抽象方法,则必须使用override关键字,否则会出现语法错误。\ 如果子类要重写父类中抽象方法时,不需要使用override关键字
单例对象和伴生对象:
Scala中提供了object这个关键字用来实现单例模式,使用关键字object创建的对象为单例对象。\ 在一个源文件中有一个类和一个单例对象,若单例对象名与类名相同,则把这个单例对象称作伴生对象(companion object),这个类则被称为是单例对象的伴生类(companion class)。\ 类和伴生对象之间可以相互访问私有的方法和字段。
伴生类与伴生对象-示例
特质:
在Scala中,Trait(特质)的功能类似于Java中的接口,但Trait的功能却比Java中的接口强大。例如,Trait可以对定义字段和方法进行实现,而接口却不能。Scala中的Trait可以被类和对象(Objects)使用关键字extends来继承。
Scala的模式匹配与样例类:
模式匹配:
Scala中的模式匹配是由match case组成,它类似于Java中的switch case。\ match关键字主要用来描述一个表达式,位于表达式位置的后面。\ case关键字主要用来描述和表达式结果进行比较后的模式。
样例类:
在Scala中,使用case关键字来定义的类被称为样例类。 样例类是一种特殊的类,经过优化可以被用于模式匹配。
模式匹配与样例类相结合使用:
文件操作:
Scala不提供任何特殊文件写入能力,所以进行文件的写操作使用的是Java的I/O类中的PrintWriter或FileWriter来实现。