Kotlin数据类

news/2025/1/19 11:20:29/

在一个规范的系统架构中,数据类通常占据着非常重要的的角色,它们用于将服务器端或数据库中的数据映射到内存中,为编程逻辑提供数据模型的支持;数据类通常需要重写equals()、hashCode()、toString()方法。(hashCode()方法作为equals()的配套方法,需要一同重写,否则会导致HashMap、HashSet等Hash相关的系统类无法正常工作)

//Java数据类实现
public class Phone {String brand;double price;public Phone(String brand, double price) {this.brand = brand;this.price = price;}@overridepublic boolean equals(Object obj) {if(obj instanceof Phone) {Phone other = (Phone) obj;return other.brand.equals(brand) && other.price == price;}return false;}@overridepublic int hashCode() {return brand.hashCode() + (int) price;}@overridepublic String toString() {return "Phone(brand=" + brand + ", price=" + price + ")";}
}
//Kotlin数据类实现
data class Phone(val brand: String, val price: Double)
/*解释:当在一个类前面声明了data关键字时,就表明这是一个数据类
Kotlin会根据主构造函数中参数为你自动生成equals()、hashCode()、toString()
等固定格式且无实际逻辑意义的函数*/


http://www.ppmy.cn/news/1564395.html

相关文章

二、点灯基础实验

嵌入式基础实验第一个就是点灯,地位相当于编程界的hello world。 如下为LED原理图,要让相应LED发光,需要给I/O口设置输出引脚,低电平,二极管才会导通 2.1 打开初始工程,编写代码 以下会实现BLINKY常亮&…

Microsoft Sql Server 2019 执行计划

1、什么是执行计划 用户提交的 sql 语句,数据库查询优化器,经过分析生成多个数据库可以识别的高效执行查询方式。然 后优化器会在众多执行计划中找出一个资源使用最少,而不是最快的执行方案,给你展示出来,可以是 文本格式,也可以是图形化的执行方案。 2、为什么要读懂执…

idea本地jar包添加到项目的maven库 mvn install:install-file

背景 最近在开发项目中需要对接海康威视摄像头&#xff0c;进行视频、照片等数据的获取保存&#xff1b;海康提供的sdk的jar包是自己开发的&#xff0c;在maven库中是找不到的&#xff0c;在项目中需要手动指定jar包路径 <dependency><groupId>com.haikang</g…

ansible自动化运维实战--服务端安装、环境配置与测试(1)

文章目录 一、准备5台虚拟机二、ansible服务端安装2.1、epel-release安装与配置2.2、查询ansible源信息2.3、安装ansible2.4、检查ansible安装状态和命令 一、准备5台虚拟机 本文使用的系统是centos9&#xff0c;5台机子的IP规划以及主机名如下&#xff1a; 主机名IPansible1…

Hooks 使用规则

Hooks 使用规则 命名规则 Hook 必须 useXxx 格式来命名。 PS&#xff1a;这种命名规则也很易读&#xff0c;简单粗暴 调用位置 Hook 或自定义 Hook &#xff0c;只能在两个地方被调用 组件内部其他 Hook 内部 组件外部&#xff0c;或一个普通函数中&#xff0c;不能调用…

MySQL(高级特性篇) 06 章——索引的数据结构

一、为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教科书的目录部分&#xff0c;通过目录找到对应文章的页码&#xff0c;便可快速定位到需要的文章。MySQL中也是一样的道理&#xff0c;进行数据查找时&#xff0c;首先查看查询条件…

C语言工具SNPRINTF函数

该函数包含在标准库中&#xff0c;以打印函数的格式将数据存入函数参数指定的数组中。 发现这个函数是在学习单片机I2C的软件应用时&#xff0c;需要将MPU6050陀螺仪模块的16位有符号数据通过串口发送到电脑进行调试。 应用中案例代码如下&#xff1a; void int16ToString(i…

飞牛os使用ddns-go配合华为云实现内网穿透

DDNS-Go 是一个开源的动态域名解析工具&#xff0c;它支持多种操作系统&#xff0c;包括 Windows、Mac 和 Linux&#xff0c;并且支持 ARM 和 x86 架构。以下是使用 DDNS-Go 的基本步骤&#xff1a; 1.下载和安装&#xff1a; 访问 DDNS-Go 的 GitHub 仓库&#xff08;&#xf…