一.Scala类及构造器
每个类都有主构造器,主构造器参数直接放置在类名后,使用private可以禁用主构造器,若禁用主构造器,则必须使用辅助构造函数来创建对象
class Person{
private var name=" "
private var age=0
def this(name:String){//一个辅助构造器
this()//调用主构造器
this.name=name
}
def this{name:String,age:Int){//另一个辅助构造器
this(name)//调用前一个辅助构造器
this.age=age
}
}
二.Scala对象
1.单例对象object
2.伴生对象
在 Scala 的类中,与类名相同的单例对象叫做伴生对象,如果我们在 object Dog 所在的文件内定义一个 class Dog,此时:
a. object Dog 被称为 class Dog 的伴生对象
b. class Dog 被称为 object Dog 的伴生类
c.伴生 类和伴生对象之间可以相互访问私有的方法和属性(加上[this]条件以后就不能访问了)
3.应用程序对象APP(不用写main方法)
三.Scala继承
1.Scala继承方法与Java一样,final修饰的filed和method的父类是无法继承的
2.重写方法(override和super)
重写时使用override关键字,在子类覆盖父类方法后还是要调用父类方法时,使用super关键字显式的指定要调用的方法
3.类型转换和检查
四.Scala特质trait
在scala的trait中,不但可以包括抽象方法,还可以包含字段和具体方法
有时在创建类的对象时,指定该对象混入某个 Trait,这样,就只有这个对象混入该Trait 的方法,而类的其他对象则没有
五.Scala模式匹配
1.匹配字符串
2.匹配类型
3.匹配数组,元组,集合
4.样例类
case class是多例的,后面要跟构造参数
case object是单例的