scala中的case class

12 阅读1分钟

case class用于创建不可变的数据容器

语法如下: case class ClassName(parameter1: Type1, parameter2: Type2,...)

例如,我们要创建一个学生的case class:

case class Student(name: String, age: Int, grade: String)

package caseclass

import caseclass.caseclass01.Student

object caseclass01 {
  case class Student(var id: String, var name: String) {

  }

  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)

    println(set1)
  }
}
case的特点

case class(样例类) 1.case class 可以定义对象时,省略new 2.case class 的属性在默认情况下只能是已读的。如果希望可以修改,那需要主动使用var 3.case calss 会自动重写 equals, toString...

package caseclass
/*
* case class(样例类)
* 1.case class 可以定义对象时,省略new
* 2.case class 的属性在默认情况下只能是已读的。如果希望可以修改,那需要主动使用var
* 3.case calss 会自动重写  equals, toString...
* */
object caseclass02 {
  case class Student(val id: String, var name: String) {

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

  }

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


    println(stu1)
    println(stu1 == stu2)
    println(Student("1", "小一"))
    stu1.name="小花花"
    println(stu1)
       }
}