Scala语法学习(2)

  1. 函数 (编写一个类,并在别的函数的主方法中调用这个方法)
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方法
  }
}
  1. 有参函数的辅助构造器(辅助构造器可以添加函数本身没有的参数)
    (其实这些函数本身就是他们的构造器)
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
  }
}

  1. 无参函数的辅助构造器
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
  }
}
  1. 先决条件 require (只接受符合条件的参数)
    这个在Java里面是需要写很多代码的,但在这里面只需要一行,可以说是很方便的
class User(newId:Int,newName:String)
{
  require(newId>0)//条件是必须大于0
  require(!newName.isEmpty)//名字不能为空
  
  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
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值