-默认主构造函数
在scala中,如果不指定主构造函数,编译器将创建一个主构造函数的构造函数。 所有类的主体的声明都被视为构造函数的一部分。它也被称为默认构造函数。
-主构造函数
Scala提供了一个类的主构造函数的概念。如果代码只有一个构造函数,则可以不需要定义明确的构造函数。它有助于优化代码,可以创建具有零个或多个参数的主构造函数。
-次要/辅助构造函数
以在类中创建任意数量的辅助构造函数,必须要从辅助构造函数内部调用主构造函数。this
关键字用于从其他构造函数调用构造函数。当调用其他构造函数时,要将其放在构造函数中的第一行。
代码示例:
//默认主构造函数 class Student { println("hello from default constructor!!!") }
//主构造函数 class Student1(id:Int,name:String){ def showDetails(): Unit ={ println(id + " " + name) } }
//次要/辅助构造器 class Student2(id:Int,name:String){ var age:Int = 16 def this(id:Int,name:String,age:Int){ this(id,name) this.age = age println(id + "|" + name + "|" + age) } println(id + "--" + name) def showDetails(): Unit ={ println(id + " " + name + " " + age) } }
object test1{ def main(args: Array[String]): Unit = { println("---默认主构造函数---") new Student() println("---主构造函数---") val s1 = new Student1(16,"xl") s1.showDetails() println("---辅助构造函数和构造器重载---") val s2 = new Student2(21,"xll",18) s2.showDetails() println("----------------") val s22 = new Student2(22,"xlll") s22.showDetails() } }
|
输出结果:
---默认主构造函数--- hello from default constructor!!! ---主构造函数--- 16 xl ---辅助构造函数和构造器重载--- 21--xll 21|xll|18 21 xll 18 ---------------- 22--xlll 22 xlll 16
|