具有示例的Scala构造函数

Scala构造函数

一个构造函数是一种被称为在对象的初始化的时间函数。一个构造函数就像包含要执行的指令的类的方法。构造函数与该类具有相同的名称,并在初始化该类的对象时调用该构造函数。

Scala编程语言定义了两种类型的构造函数

  1. 主要构造函数

  2. 辅助构造函数

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