class test {
private var id:Int=_
//不赋值的是时候就要用下划线赋值
private var name:String=_
private var age:Int=_
val getId =()=>this.id
val setId =(id :Int)=>this.id=id
//获取一个id ,把这个值传给全局变量的id,这个id是int型的
val getName=()=>this.name
val setName=(name:String)=>this.name=name
val getAge=()=>this.age
val setAge=(age:Int)=>this.age=age
override def toString: String = {
"name:"+name+"id:"+id+"age:"+age
}
}
object UserTest{
def main(args: Array[String]): Unit = {
val user=new test()
user.setId(11)
user.setName("xin")
user.setAge(14)
println(user)//输出的是user方法里面的toString方法
}
}
有参函数的辅助构造器(辅助构造器可以添加函数本身没有的参数) (其实这些函数本身就是他们的构造器)
class User(newId:Int ,newName:String){
private var id:Int=newId
private var name:String=newName
private var age :Int=_
//辅助构造器
def this(id:Int,name :String,age:Int)
{
this(id,name) //其实这个就是相当于一个有参构造函数
//必须要调用主构造器的参数(主构造器就是函数本身自己)
this.age=age//可以继续添加参数
}
val getId=()=>this.id
val setId=(id:Int)=>this.id=id
//接受到的id要赋值给全局变量的id,set是获取id值,所以需要表明类型
val getName=()=>this.name
val setName=(name:String)=>this.name=name
val getAge=()=this.age
val setAge=(age:Int)=>this.age=age
//重写toString方法
override def toString:String={
"id:"+id+"age:"+age+"name:"+name
}
}
无参函数的辅助构造器
class User{
private var id:Int=_
private var name:String=_
private var age:Int=_
//辅助构造器
def this(id:Int){
this()//无论函数是有参的还是无参的,在辅助构造器中必须要再次的调用一遍主构造器
this.id=id
//这个辅助构造器只有一个id,所以相当于有一个参数的构造器
//调用函数时可以用有一个参数的对象来调用这个函数
}
def this(id:Int,name:String)
{
this()
this.id=id
this.name=name
}
def this(id :Int,name :String,age:Int)//相当于有三个参数的构造器
{
this()
this.id=id
this.name=name
this.age=age
}
}