Scala中的构造器

Scala中的构造器

Scala中的构造器分为两类,主构造器和辅助构造器

主构造器是通过类名后面跟的括号里加参数列表来定义

辅助构造器是通过关键字this定义

定义一个无参主构造器

class rectangle(){
    val width = 0
    val height = 0
}

定义一个带参主构造器

class rectangle(w:Int){
    val width = w
    val height = 0
}

主构造器的函数体是在类里面的,可以说一个类里面除了方法和成员字段外都是主构造器的函数体,在类初始化的过程中会执行类体里面的语句。

可以在无参主构造器内这样定义和执行初始化方法

class rectangle(){
    var width = 0
    var height = 0
    
    Init()
    
    def Init(){
        width = 1
        height = 1
    }
}

用this来定义辅助构造器,在辅助构造器里必须调用主构造器,所以说类的构造过程是必须经过主构造器。

注意

默认构造器是顺序执行的也就是从第一个非函数开发执行,所以如果你的上述代码是这样写的:

Init()

var width = 0
var height = 0

width和height的值依然还是0!

辅助构造器一

class rectangle(){
	var width = 0
	var height = 0
	
	def this(w:Int){
		this()
		width = w
	}
}

辅助构造器二

class rectangle(){
	var width = 0
	var height = 0
	
	def this(w:Int){
		this()
		width = w
	}
	
	def this(w:Int, h:Int){
		this(w)
		height = h
	}
}

  

原文地址:https://www.cnblogs.com/keitsi/p/5356525.html