scala快速入门系列【样例类】

        本篇作为scala快速入门系列的第二十七篇博客,为大家带来的是关于样例类的内容。

在这里插入图片描述


样例类

        样例类是一种特殊的类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),在后续的学习并发编程和spark,flink这些框架也都会经常使用它。

定义样例类

语法
在这里插入图片描述

  • 如果要实现某个成员变量可以被修改,可以添加var
  • 默认为val,可以省略

示例 | 定义一个样例类

  • 定义一个Person样例类,包含姓名和年龄成员变量
  • 创建样例类的对象实例(“张三”、20),并打印它

参考代码
在这里插入图片描述

示例 | 可变成员变量

  • 定义一个Person样例类,包含姓名和年龄成员变量
  • 创建样例类的对象实例(“张三”、20)
  • 修改张三的年龄为23岁,并打印

参考代码
在这里插入图片描述


样例类方法

        当我们定义一个样例类,编译器自动帮助我们实现了以下几个有用的方法:

  • apply 方法
  • toString 方法
  • equals 方法
  • hashCode 方法
  • copy方法

apply 方法

        apply方法可以让我们快速地使用类名来创建对象。参考以下代码:
在这里插入图片描述

toString 方法

        toString返回样例类名称(成员变量1,成员变量2,成员变量3…),我们可以更方便查看样例类的成员。

在这里插入图片描述

equals 方法

        样例类自动实现了equals方法,可以直接使用==比较两个样例类是否相等,即所有的成员变量是否相等。

示例

  • 创建一个样例类Person,包含姓名、年龄
  • 创建名字年龄分别为“李四”,21的两个对象
  • 比较它们是否相等
    在这里插入图片描述

hashCode方法

        样例类自动实现了hashCode方法,如果所有的成员变量的值相同,则 hash 值相同,只要有一个不一样,则hash值不一样。

示例

  • 创建名字年龄分别为"李四", 21的对象
  • 再创建一个名字年龄分别为"李四", 22的对象
  • 分别打印这两个对象的哈希值
    在这里插入图片描述

copy方法

        样例类实现了copy方法,可以快速创建一个相同的实例对象,可以使用带名参数指定给成员进行重新赋值。

示例

  • 创建名字年龄分别为"李四", 21的对象
  • 通过copy拷贝,名字为"王五"的对象
    在这里插入图片描述

        本期的内容分享就到这里了,喜欢的小伙伴们记得点个赞,持续关注哟~下期为大家介绍的是样例对象,敬请期待٩(๑>◡<๑)۶

在这里插入图片描述

发布了169 篇原创文章 · 获赞 1392 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/weixin_44318830/article/details/104091210
今日推荐