首页 > 其他分享 >在Scala中,如何判断两个对象相等,覆写类equals方法

在Scala中,如何判断两个对象相等,覆写类equals方法

时间:2024-09-25 16:47:52浏览次数:3  
标签:name Scala 覆写 s1 equals var Stu println

覆写类equals方法

override def equals(other:Any):Boolean={
    true/false
}

图书馆借书

如何判断两条记录是不是一个同学借的?

//约定:两个人的名字一样,就是一个人!就是相等的!!
class Stu(var name:String){
  //override:改写,覆写,重写。把之前的覆盖掉
  override def equals(obj: Any): Boolean = {
    println("equals.......")
    //两个对象相等:类型要相等&&名字要相等
    if (obj!=null&&obj.getClass==this.getClass) {
//    true
//    name==待比较的对象的名字
      //格式转换
      val p=obj.asInstanceOf[Stu]
      println("equals.......",name,p.name)
      name==p.name
    }else{
      false
    }
  }
}
object TestClassEqual {
  def main(args: Array[String]): Unit = {
    var s1=new Stu("小花")
    var s2=new Stu("小花")
    var s3=new Stu("小花花")

    println(s1==s2)//在两个对象用===时,会自动去调用类中的equals方法
    println(s1==s3)
    println(s1==100)
  }

标签:name,Scala,覆写,s1,equals,var,Stu,println
From: https://blog.csdn.net/Betty_at/article/details/142523681

相关文章

  • String.intern()方法、==、equals()、运行时常量池
    尽管在输出中调用intern方法并没有什么效果,但是实际上后台这个方法会做一系列的动作和操作。在调用”ab”.intern()方法的时候会返回”ab”,但是这个方法会首先检查字符串池中是否有”ab”这个字符串,如果存在则返回这个字符串的引用,否则就将这个字符串添加到字符串池中,然会返回这个......
  • scala中的apply和equal改写
    1.Scala对象的创建a.new:使用new关键字创建的对象b.伴生对象:使用object关键字创建一个单例对象c.apply:apply是一个方法,需要在伴生对象中实现这个方法2.Scala对象的所属类a.getClass:使用反射机制判断Scala对象所属的类b.isInstanceof:判断是否属于一个类型println(s1.......
  • scala的单例对象
    在定义时,使用private修饰的属性有什么特点  用object关键字来创建一个单例对象,单例对象在整个应用程序中只有一个实例,适合用于存放工具方法,常量或共享状态  伴生类和伴生对象 访问私有方法   ......
  • 初学者学scala
    Scala是一种多范式编程语言,它结合了面向对象编程和函数式编程的特点。Scala运行在Java虚拟机(JVM)上,并且可以与Java代码无缝集成。Scala的设计目标是提供一种更加简洁、高效和类型安全的编程语言,同时保持与现有Java生态系统的兼容性。对于初学者来说,Scala可能有一些学......
  • Scala:如何在IDEA中安装scala插件
    首先打开IDEA,点击右上角【文件】,点击【设置】点击【插件】,搜索scala点击【安装】,安装完成后点击【重启IDEA】重启后点击【文件】,点击【新建】点击【创建】选择【此窗口】操作完成后点击【文件】,点击【项目结构】点击【全局库】点击新建全局库【+】选择第一......
  • Scala安装与环境配置详解教程
    本文参考来源:http://mengmianren.com/zhihuishu2020/641069.html Scala运行在java的JVM之上,因此需要先安装Java运行环境一、JDK8的下载和安装及环境变量配置使用的jdk版本是:jdk-8u191-windows-i586.exehttps://pan.baidu.com/s/1RNNb7lcqKHC_2h0iiTlqFg?pwd=9t5e提取码:9t5......
  • Scala编程语言基本常识
    ​ 本文参考来源: Scala编程语言基本常识–萌面人博客​一基本常识Scala被称为大数据的黄金语言,它的发明人是马丁奥德斯基(MartinOdersky)2001年诞生,融合了Java和JS中很多特性。Hadoop生态圈以java语言为主,而Spark以scala为主要语言2017年国外编程语言薪资排行榜Sca......
  • Imitating Language via Scalable Inverse Reinforcement Learning
    本文是LLM系列文章,针对《ImitatingLanguageviaScalableInverseReinforcementLearning》的翻译。通过可扩展的逆向强化学习模仿语言摘要1引言2方法3实验4相关工作5讨论6结论摘要大多数语言模型训练都建立在模仿学习的基础上。它涵盖了预训练、监......
  • Scala的内建控制
    Scala的内建控制结构提供了一套简洁而强大的方式来控制程序的执行流程。这些结构包括: 1.条件表达式:使用if、elseif和else关键字来根据条件执行不同的语句。例如,if(a>0)println(a+">0")。2.循环结构:while循环:while(i>0){i-=1;println(i)}。do-while循环......
  • Scala的IDEA环境搭建
    要在IntelliJIDEA(简称IDEA)中搭建Scala开发环境,您可以按照以下步骤操作: 1.安装JDK:确保您已经安装了JavaDevelopmentKit(JDK)。如果您还没有安装,可以访问Oracle的官方网站下载并安装JDK8或更高版本。2.安装Scala编译器:访问Scala的官方网站,下载并安装最新的Scala编译器。根......