概述
scala的构造函数由一个主构造函数和0到多个辅助构造函数组成
主构造函数
scala的主构造函数指的是整个类,主要包含以下几个部分:
- 构造函数参数;
- 在类内部被调的方法;
- 在类内部执行的语句和表达式。
主构造函数参数
-
主构造函数里的参数,如果不声明为var或者val,则该参数只能被当做一个类内不可变参数使用,不能被当做类的字段,既外部不能访问该变量
-
当为主构造函数的的参数添加var,或者val声明,则该参数被升级为类的成员变量
对于case class的参数而言,主构造器的参数默认就是val类型的变量
辅助构造函数
辅助构造函数的第一个语句必须为对主构造函数的调用
apply方法
apply方法既不是主构造函数,也不是辅助构造函数,他只是一个语法糖方便创建对象。
- 没有在伴随对象实现apply的方法,必须用new关键字创建对象
- apply方法必须实现在伴随对象里面
class Person(name: String, age: Int) {
def this() {
this("chen", 10)
}
val a = 10
println("语句块")
def func(): Unit = {
println("方法")
}
def apply(): Person = new Person()
def apply(name: String, age: Int): Person = new Person(name, age)
}
object Person {
def apply(): Person = new Person()
def apply(name: String, age: Int): Person = new Person(name, age)
def main(args: Array[String]): Unit = {
val person = Person()
}
}