scala的构造函数由一个主构造函数和0到多个辅助构造函数组成
主构造函数里的参数,如果不声明为var或者val,则该参数只能被当做一个类内不可变参数使用,不能被当做类的字段,既外部不能访问该变量
当为主构造函数的的参数添加var,或者val声明,则该参数被升级为类的成员变量
辅助构造函数的第一个语句必须为对主构造函数的调用
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() } }