具有示例的Scala构造函数
Scala构造函数
一个构造函数是一种被称为在对象的初始化的时间函数。一个构造函数就像包含要执行的指令的类的方法。构造函数与该类具有相同的名称,并在初始化该类的对象时调用该构造函数。
Scala编程语言定义了两种类型的构造函数,
主要构造函数
辅助构造函数
1)主要构造函数
也称为默认构造函数,当未定义其他构造函数时,将创建主构造函数。它与类具有相同的名称。它在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
2)辅助构造函数
在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