一个构造函数是一种被称为在对象的初始化的时间函数。一个构造函数就像包含要执行的指令的类的方法。构造函数与该类具有相同的名称,并在初始化该类的对象时调用该构造函数。
Scala编程语言定义了两种类型的构造函数,
主要构造函数
辅助构造函数
也称为默认构造函数,当未定义其他构造函数时,将创建主构造函数。它与类具有相同的名称。它在Scala中默认定义。
语法:
class class_name(parameter list){ // statements to be executed... }
示例
class student(Sname: String, Ssubject: String, percentage: Int) { def result() { println("Student name: " + Sname); println("Subject taken: " + Ssubject); println("Percentage obtained:" + percentage); } } object MyObject { def main(args: Array[String]) { var obj = new student("Ramesh", "Maths", 78); obj.result(); } }
输出结果
Student name: Ramesh Subject taken: Maths Percentage obtained: 78
在Scala类中,允许程序员为单个类创建多个构造函数。但是一个类只能有一个主要的构造函数。程序员明确定义的构造器(除了主要构造器)被称为辅助构造器。
语法:
def this(parameter list){ //code to be executed }
可以有多个辅助构造函数,可以通过它们的参数列表来区分它们。在任何辅助构造函数的定义中,第一条语句应该是对主构造函数的调用,或者是在调用构造函数之前使用“ this”关键字定义的另一个辅助构造函数的调用。
示例
class Student( Sname: String, sub: String) { var percentage: Float = 0.0f; def display() { println("Student name: " + Sname); println("Stream : " + sub); println("percentage: " + percentage); } def this(Sname: String, sub: String, no:Int) { this(Sname, sub) this.percentage = no/5 } } object Main { def main(args: Array[String]) { var obj = new Student("kirti", "biology", 345); obj.display(); } }
输出结果
Student name: kirti Stream : biology Percentage: 69.0