scala构造函数

-默认主构造函数

在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

猜你喜欢

转载自www.cnblogs.com/xl717/p/11739006.html