构造器
Scala中的构造器相较于Java比较特殊,分为两种:主构造器,从构造器。主构造器是和类中字段和方法的定义混合在一起的。
在scala中,不需要像Java一样需要在类中定义一个与类名相同的方法来当作构造器。
主构造器的参数列表写在类名的后面,而构造器的内容,则直接写在类定义里面,所以说,一个scala类中,除了方法和字段的定义以外的代码,全都是主构造器的内容。
class Fruit( n:String, w:Int){
val name = n
val weight = w
println("This is a " + n )
println("Weight = " + w )
}
如果接下来定义一个Fruit的对象
val apple = new Fruit("Apple" , 10 )
则会在屏幕上打印:
This is a Apple
Weight = 10
因为
println("This is a " + n)
println("Weight = " + w)
两行代码也是构造函数的内容
除了主构造器外,Scala中还有从构造器,用于使用和主构造器不同的参数来初始化对象。
从构造器的定义,都是从 def this 开始的
class Fruit(n: String, w: Int) {
val name = n
val weight = w
println("This is a " + n)
println("Weight = " + w)
def this(n: String) = this(n, 10)
}