Kotlin数据类

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

java 复制代码
//Java数据类实现
public class Phone {
    String brand;
    double price;

    public Phone(String brand, double price) {
        this.brand = brand;
        this.price = price;
    }

    @override
    public boolean equals(Object obj) {
        if(obj instanceof Phone) {
            Phone other = (Phone) obj;
            return other.brand.equals(brand) && other.price == price;
        }
        return false;
    }

    @override
    public int hashCode() {
        return brand.hashCode() + (int) price;
    }

    @override
    public String toString() {
        return "Phone(brand=" + brand + ", price=" + price + ")";
    }
}
Kotlin 复制代码
//Kotlin数据类实现
data class Phone(val brand: String, val price: Double)
/*解释:当在一个类前面声明了data关键字时,就表明这是一个数据类
Kotlin会根据主构造函数中参数为你自动生成equals()、hashCode()、toString()
等固定格式且无实际逻辑意义的函数*/
相关推荐
枫叶丹43 分钟前
【HarmonyOS 6.0】ArkUI 闪控球功能深度解析:从API到实战
开发语言·microsoft·华为·harmonyos
小白学大数据4 分钟前
实战复盘:Python 爬虫破解网站动态加载页面思路
开发语言·爬虫·python
Kapaseker11 分钟前
千万不要以为你搞懂了 var 和 val
android·kotlin
暴躁小师兄数据学院14 分钟前
【WEB3.0零基础转换笔记】Rust编程篇-第4讲:控制流
开发语言·笔记·rust·web3·区块链·智能合约
551只玄猫15 分钟前
【数学建模 matlab 实验报告3】
开发语言·数学建模·matlab·课程设计·实验报告
小樱花的樱花17 分钟前
C++访问权限:封装的艺术
开发语言·c++
bcbobo21cn18 分钟前
C#使用一维数组作为参数传递
开发语言·数据库·c#·一维数组
yuanlaile19 分钟前
想转后端,java和go学哪个更好?
java·开发语言·golang
盐水冰19 分钟前
【WEB模型】CS架构&BS架构&HTML&CSS&JS
开发语言·前端·javascript
阿凤2119 分钟前
js文件怎么引入到vue3的项目中
开发语言·前端·javascript·vue.js