scala case class

32 阅读1分钟
package caseclass

object case01 {
  case class Student(var id: String, var name: String) {
    //    override def equals(obj: Any): Boolean = {
    //      val other = obj.asInstanceOf[Student]
    //      other.id == id && other.name == name
  // }

  //override def toString: String = {
   // s"Student(${id},{name})"


  //}
 }

def main(args: Array[String]): Unit = {

  val stu1 = new Student("1","小王")
  val stu2 = new Student("1","小王")
  println(stu1)

  println(stu1 == stu2)

  val set1 = Set(stu1,stu2)
  //val set1 =Set(1,2,3,1,1,1)

  println(set1)
 }
}
package caseclass

/*
* case class(样例类)  v.s.  class(类)
*  1. case class 可以再定义对象时 省略new
*  2. case class 的属性在默认情况下 只读  若希望能修改 需要使用var
*   3. case class 自动重写 equals toString...
*
*    当只需要使用类来表示数据的时候 可以选择使用 case class 更加简单
 * */

object case02 {
  case class Student1(val id:String,var name:String) {

  }
        class Student2(var id:String,var name:String) {

  }

  def main(args: Array[String]): Unit = {
    val stu1 = new Student2("1","小王")
    val stu2 = new Student2("1","小王")
    println(stu1 == stu2)

    println(stu1)
    println(Student1("1","小王"))
  }
}