作用:
this
object Scala08_TestConstructor {
def main(args: Array[String]): Unit = {
//val std: Student08 = new Student08()
//val std: Student08 = new Student08("jingjing")
val std: Student08 = new Student08("jingjing",18)
}
}
class Student08{
println("0----Student08的主构造方法被调用了")
var name:String = _
var age:Int = _
//声明辅助构造方法
def this(name:String){
//直接调用主构造方法
this()
println("1----Student08的辅助构造方法被调用了")
this.name = name
}
def this(name:String,age:Int){
//间接调用主构造方法
this(name)
println("2----Student08的辅助构造方法被调用了")
this.age = age
}
/*//以下写法不是构造方法
def Student08()={
println("Student08的构造方法被调用了")
}*/
}
var
或者val
关键字object Scala09_TestConstructor {
def main(args: Array[String]): Unit = {
//val stdJ: Student09 = new Student09
//stdJ.name = "jingjing"
//stdJ.age = 16
//println(stdJ.name)
var std = new Student09("jingjing",17)
println(std.name)
}
}
/*
//只提供无参的主构造,单独定义
class Student09{
var name:String = _
var age:Int = _
}
*/
/*
//在scala语言中,以下写法比较少,如果这样写,那就是受java毒害太深了
class Student09(namePararm:String,ageParam:Int){
var name:String = namePararm
var age:Int = ageParam
}
*/
//在声明主构造方法参数的时候,如果参数前什么也不加,那么参数就作为当前类的局部变量使用,不能作为类的属性被访问
//如果需要将参数作为属性被访问的话,那么在参数声明前加var或者val关键字
class Student09(var name:String, var age:Int){
def m1(): Unit ={
println(name)
println(age)
}
}
/*
//同时提供主、辅助构造方法
class Student09{
var name:String = _
var age:Int = _
def this(name:String,age:Int){
this()
this.name = name
this.age = age
}
}*/