首页 > 其他分享 >scala中的apply和equal改写

scala中的apply和equal改写

时间:2024-09-23 11:21:00浏览次数:3  
标签:getClass obj scala 对象 Scala equal equals println apply

1.Scala对象的创建

a.new:使用new关键字创建的对象

b.伴生对象:使用object关键字创建一个单例对象

c.apply:apply是一个方法,需要在伴生对象中实现这个方法

2.Scala对象的所属类

a.getClass:使用反射机制判断Scala对象所属的类

b.isInstanceof:判断是否属于一个类型

println(s1. getClass())
    println("s".getClass())
     println(100.getClass())    
      println(s1.isInstanceOf[Stu])
     println(100.isInstanceOf[Int])

3.Scala的对象相等性判断

在Scala中有三种方法判断对象的相等性,这三种方法主要分为两大类,第一种和第二种为一类,第三种方法为另外一类。在大多数情况下(非空),equal方法和==比较的内容是相同的

a.equal方法:相当于java中equals方法

b.==与!=:相当于java中equals方法

c.eq与ne:相当于java的引用

  override def equals(obj: Any): Boolean = {
    //    ID == obj.ID
    //    true
    //随机返回true flase
    //random()的作用时产生一个0-1的随机数
    //1.自己等于自己
    if (this == obj) {
      return true
    }
    //2.同类比较
    if (obj != null && this.getClass() == obj.getClass()) {
      var s = obj.asInstanceOf[Stu]
      return s.ID == ID
    }
    else
    //3,其他的就是flase
      false
  }
}

1.如何改写equals?

在class中,用override def equals(other:Any):Boolean={

逻辑判断(true flase)

}

2.如何不使用new来定义对象?

在伴生对象中写一个apply,并返回伴生类的实例

标签:getClass,obj,scala,对象,Scala,equal,equals,println,apply
From: https://blog.csdn.net/2401_87076481/article/details/142449068

相关文章

  • scala的单例对象
    在定义时,使用private修饰的属性有什么特点  用object关键字来创建一个单例对象,单例对象在整个应用程序中只有一个实例,适合用于存放工具方法,常量或共享状态  伴生类和伴生对象 访问私有方法   ......
  • 数据处理与统计分析篇-day08-apply()自定义函数与分组操作
    一.自定义函数概述当Pandas自带的API不能满足需求,例如:我们需要遍历的对Series中的每一条数据/DataFrame中的一列或一行数据做相同的自定义处理,就可以使用Apply自定义函数apply函数可以接收一个自定义函数,可以将Series对象的逐个值或DataFrame的行/列数据传递给自......
  • 初学者学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......
  • OpenCV(cv::equalizeHist())
    目录1.函数定义2.函数原理3.示例4.应用场景5.注意事项6.实际效果cv::equalizeHist()是OpenCV中用于图像直方图均衡化的函数。该函数主要用于增强图像的对比度,尤其是在图像的光照条件不均匀或整体对比度较低的情况下,直方图均衡化可以有效改善图像的细节。1.函数定......
  • 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编译器。根......