Scala中的case class

case class是Scala中一种特殊的类,它用于创建不可变的数据容器

Scala 复制代码
//Set特点:去重
//设置一个Book。三个属性:书名,作者,价格
class Book1(bookName:String,author:String,price:Double){
  //判断一个类的两个对象是否相等
//  override def equals(obj: Any): Boolean = {
//    //判断依据是书名相同
//    val o=obj.asInstanceOf[ttttt.Book]
//    o.bookName==bookName
//  }
//
//  override def toString: String = s"书名是:$bookName,作者是:$author,价格是:$price"
//
//  override def hashCode(): Int = bookName.hashCode
}

//casa class的特点
//1.数据是只读的
//2.可以省略new
//3.它内置实现了一些方法
//  equals hashCode toString
case class BookCase(bookName:String,author:String,price:Double)

object t4 {
  def main(args: Array[String]): Unit = {
    val book1=new Book1("西游记","吴承恩",100)
    val book11=new Book1("西游记","吴承恩",100)
    val set1=Set(book1,book11)
    println(set1)


    val book2=BookCase("西游记","吴承恩",100)
    val book3=BookCase("西游记","吴承恩",100)

    println(book1 == book11)
    println(book2 == book3)

    println(book1)//println会自动去调用对象的toString方法
    println(book2)


  }
}
相关推荐
qwy7152292581632 天前
3-scala的类
开发语言·后端·scala
qwy7152292581636 天前
4.scala默认参数值
开发语言·后端·scala
百流9 天前
scala基础学习(数据类型)-哈希表
学习·scala·散列表
李匠20249 天前
大数据学习之SCALA分布式语言三
开发语言·学习·scala
lisacumt10 天前
【kerberos】使用keytab文件,kerberos认证工具类 scala版本
hadoop·scala
百流10 天前
scala文件编译相关理解
开发语言·学习·scala
WorkAgent11 天前
windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】
hadoop·spark·scala
JoneMaster18 天前
[读书日志]从零开始学习Chisel 第十二篇:Scala的抽象成员(敏捷硬件开发语言Chisel与数字系统设计)
开发语言·学习·scala
wlyang66620 天前
4. scala高阶之隐式转换与泛型
大数据·开发语言·后端·spark·scala
一杯拿铁go22 天前
[sparkstreaming]java.lang.NoSuchMethodError:错误以及更改
scala·noclassdeffound