case class的定义
case class 是 Scala 中一种特殊的类,它用于创建不可变的数据容器。
语法如下:
case class ClassName(parameter1: Type1, parameter2: Type2,...)
例如,我们要创建一个学生的case class:
case class Student(name: String, age: Int, grade: String)
case class的特点
(1)不可变性
case class 创建的对象是不可变的,一旦创建,其属性值不能被修改。
[代码示范]
val student = Student("Alice", 18, "Grade 12")
// 以下代码会报错,因为 case class 的属性是不可变的
// student.age = 19
(2)实例化可以省略new
普通的class 在实例化时,必须要写new的。
(3)自动重写方法: toString, equals, hashCode, copy。
package caseclass
object caseclass1 {
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)
}
}
自动生成方法
package caseclass
/*
* 1.case class(样例类) v.s. class(类)
* 2.case class可以在定义对象时省略new
* 3.case class会自动重写 equals,toString
*
* */
object caseclass1 {
case class Student(var id:String,var name:String) {
}
class Student2(var id:String,var name:String) {
}
def main(args: Array[String]): Unit = {
val stu1= Student("1","小华")
val stu2=new Student2("1","小华")
println(stu1)
println(stu1==stu2)
println(Student("1","小新"))
stu1.name="小花花"
println(stu1)
}
}