case class

28 阅读1分钟

case class

样例类,相对于普通的类,它有三点不同

1、 在创建对象的时候,可以省略 new

2、 可以直接使用类的成员

3、 默认情况下,直接提供了 equals,toString 等方法

特别适合用来做模式匹配

object caseclass01 {

  class Stu(var name:String,var age:Int) {
    override def equals(obj: Any): Boolean = {
      val other =obj.asInstanceOf[Stu]
      other.age==age && other.name==name
    }

    override def toString: String = s"Stu(${name},${age})"
  }


  def main(args: Array[String]): Unit = {
    val stu1=new Stu("小花",18)
    val stu2=new Stu("小花",18)

    println(stu1)
    println(stu1==stu2)

    val set1=Set(stu1,stu2)
    println(set1)
  }
}
case class  Stu(name: String, age: Int)

object caseclass02 {
  def main(args: Array[String]): Unit = {
    val stu1= Stu("小花",18)
    
    val stu2 =Stu("小花",18)
    println(stu1)
    
    println(stu1==stu2)
    
    val set1=Set(stu1,stu2)
    println(set1)
  }

}