9.scala 伴生对象、伴生类、case class、case object

news2024/10/1 3:33:41

目录

  • 概述
  • 伴生
  • case 相关特性
  • 结束

概述

比较
case class vs class
1.toString equals hashcode 重写
2.不用 new
3.默认实现了序列化接口

case class vs case object
1.case class 修饰的类,必须要有参数列表
2.case object 修饰的对象,必须不能有参数列表

伴生

package com.fun.scala

object Person {

  def apply () ={
    println("apply object person")
    new Person
  }

  def main(args: Array[String]): Unit = {
    Person().test()

    // new Class
    val person = new Person
    // com.fun.scala.Person@35bbe5e8
    println(person)
    // class person apply
    println(person())
  }
}

class Person() {
  def apply() = {
    "class person apply"
  }

  def test(): Unit ={
    println("class test")
  }
}

结果如下:
在这里插入图片描述

case 相关特性

package com.fun.scala

object ExampleCase {

}

case object Person {
  def main(args: Array[String]): Unit = {
    val p1 = new PersonEx("test", 11)
    val p2 = new PersonEx("test", 11)
    // p1==p2 值 false
    println(s"p1==p2 值 ${p1==p2}")
    println(p1)
    val d1 = Dog("旺财")
    val d2 = Dog("p")
    // d1==d2 值 true
    println(s"d1==d2 值 ${d1==d2}")
    // Dog(旺财)
    println(d1)
  }
}

case class Dog(name: String)

class PersonEx(name: String, age: Int) {

}

结果如下图:
在这里插入图片描述

结束

scala 伴生对象、伴生类、case class、case object 至此结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis(发布订阅、事务、redis整合springboot、集成 Spring Cache)

目录 一.redis的发布订阅 1、什么 是发布和订阅 2、Redis的发布和订阅 3、发布订阅的代码实现 二.Redis事务 1.事务简介 1、在事务执行之前 如果监听的key的值有变化就不能执行 2、在事务执行之前 如果监听的key的值没有变化就能执行 3、Exec之前就出现错误 4、Exec之…

多窗口大小和Ticker分组的Pandas滚动平均值

最近一个学弟在在进行数据分析时,经常需要计算不同时间窗口的滚动平均线。当数据是多维度的,比如包含多个股票或商品的每日价格时,我们可能需要为每个维度计算滚动平均线。然而,如果我们使用传统的groupby和apply方法,…

小红书商品笔记发布流程,如何避免盘营销

随着平台营销内容不断被管制,商品笔记慢慢出现在了人们的视野,这同时也意味着达人和品牌方们,可以名正言顺的在笔记内容中植入产品。商品链接的开通意味着,不管是达人还是品牌转化率都会进一步提升,今天来马文化传媒和…

遇到流氓软件无法删除?强制删除文件解救你!

在使用电脑的过程中,我们有时会遇到一些文件无法正常删除的情况,这可能是由于文件被其他程序占用或者权限问题。本文将介绍三种常见的方法,详细解释如何在电脑上强制删除文件,以便用户在面对这一问题时能够快速解决。 方法1&#…

数据挖掘笔记1

课程:清华大学-数据挖掘:理论与算法(国家级精品课)_哔哩哔哩_bilibili 一、Learning Resources 二、Data 数据是最底层的一种表现形式。数据具有连续性。从存储上来讲,数据分为逻辑上的和物理层的。大数据&#xff1…

python-分享篇-代码雨

文章目录 代码效果 代码 import sys import random import pygame from pygame.locals import *# 屏幕大小 WIDTH 800 HEIGHT 600 # 下落速度范围 SPEED [15, 30] # 字母大小范围 SIZE [5, 30] # CODE长度范围 LEN [1, 8]# 随机生成一个颜色 def randomColor():return (r…

按条件自动搜索文件

在计算机的某个文件夹中,假如有一大堆不同格式的文件,如下图: 我们的目的:快速查找出文件名中包含某文字内容的指定格式的文件,看看它们都放在哪里?通过分析,可能在当前文件夹中也可能在某个子…

【寒假打卡】Day01

文章目录 选择编程HJ99 自守数OR86 返回小于 N 的质数个数 选择 如下代码输出的是什么( ) char a101; int sum200; a27;suma; printf("%d\n",sum);A: 32 B: 99 C: 328 D: 72 答案: C 解析: 首先,char a …

Idea Community社区版如何添加Run Dashboard

最近在学习spring cloud,跟着视频添加run dashboard,发现里面介绍的方法无法适用于idea community(社区版)。 然后自己研究了一下,成功添加,下面分享自己的方法。 如图,我的项目里添加了两个module,我想通…

Python中的open与JSON的使用

目录 1 使用 open 函数进行文件操作 2 使用 json 模块进行 JSON 数据处理: 2.1 写入JSON 文件 2.2 读取JSON 文件 在 Python 中,open 函数和 json 模块常用于文件的读写和 JSON 数据的处理。 1 使用 open 函数进行文件操作 open 函数用于打开文件…

数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树

文章目录 1.红黑树的概述2.红黑树的性质3.红黑树的代码实现3.1.红黑树的节点定义3.2.红黑树的插入操作3.3.红黑树是否平衡 黑红树是一颗特殊的搜索二叉树,本文在前文的基础上,图解红黑树插入:前文 链接,完整对部分关键代码展示&a…

【STM32CubeMX串口通信详解】USART2 -- DMA发送 + DMA空闲中断 接收不定长数据

( 本篇正在编写、更新状态中.....) 文章目录: 前言 前言 本篇,详细地用截图解释 CubeMX 对 USART2 的配置,HAL函数使用,和收发程序的编写。 收、发机制:DMA发送 DAM空闲中断接收。 DMA空…

物业app开发,提升社区管理效率

随着城市化进程的加速,小区和社区管理面临着越来越多的挑战。传统的管理模式已经无法满足高效管理的需求,而物业app的应用正逐渐成为解决问题的最佳选择。通过物业app,管理人员可以更好地管理小区设施、维护房屋,居民们也能够更便…

pytestallure分析redis的数据并动态生成testCase报告

1.pytest.mark.parametrize pytest.mark.parametrize 是一个pytest的装饰器,它可以用于将参数传递给测试函数。使用 pytest.mark.parametrize 装饰器时,需要在装饰器中指定参数名称和参数值。对于多个参数,可以使用多个装饰器。 下面是一些…

【网络安全】常见的网络威胁有哪些?

随着互联网的快速发展,网络安全问题日益凸显。常见的网络威胁包括病毒、木马、恶意软件等。这些威胁不仅会影响计算机的安全运行,还会窃取用户的个人信息,造成巨大的损失。因此,我们需要采取一些措施来保护自己的网络安全。 常见的…

HarmonyOS鸿蒙应用开发( 四、重磅组件List列表组件使用详解)

List列表组件,是一个非常常用的组件。可以说在一个应用中,它的身影无处不在。它包含一系列相同宽度的列表项,适合连续、多行呈现同类数据,如商品列表、图片列表和和文本列表等。ArkUI 框架采用 List 容器组件创建列表(…

RFID标签是什么?该技术有哪些应用领域?

射频识别(RFID)技术利用电磁场,自动识别和跟踪附在物体上的标签,其中,近场通信(NFC)是一种基于短距离RFID高频技术的标准,支持13.56 MHz的频率。 NFC技术在现今的产品中应用广泛&am…

智能GPT图书管理系统(SpringBoot2+Vue2)、接入GPT接口,支持AI智能图书馆

☀️技术栈介绍 ☃️前端主要技术栈 技术作用版本Vue提供前端交互2.6.14Vue-Router路由式编程导航3.5.1Element-UI模块组件库,绘制界面2.4.5Axios发送ajax请求给后端请求数据1.2.1core-js兼容性更强,浏览器适配3.8.3swiper轮播图插件(快速实…

Ubuntu findfont: Font family ‘SimHei‘ not found.

matplotlib中文乱码显示 当我们遇到这样奇怪的问题时, 结果往往很搞笑 尝试1不行 Stopping Jupyter Installing font-manager: sudo apt install font-manager Cleaning the matplotlib cache directory: rm ~/.cache/matplotlib -fr Restarting Jupyter. 尝试2 This work fo…

【机组】计算机组成原理实验指导书.

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《机组 | 模块单元实验》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 ​ 目录 第一章 性能特点 1.1 系…