Scala深入浅出实战经典:29,Case class和Case object代码实战解析

package com.dt.scalaInAction.demo_029

/**
 * Case class和Case object代码实战解析
 * 注(1)case class中的成员默认下会是val的 只读的 这正适用于消息的传递
 *  (2)每个case class会有一个伴生对象 里面有apply方法  其中它的伴生对象会为我们构建出case class具体的对象
 */

abstract class Person
case class Student(age: Int) extends Person
case class Worker(age: Int, salary: Double) extends Person
case object Shared extends Person

object Case_Class_Object {
    def main(args: Array[String]): Unit = {
        def caseOps(person: Person) = person match {
            case Student(age) => println("I am " + age + "years old")
            case Worker(_, salary) => println("Wow, I got " + salary)
            case Shared => println("No property")
        }
        
        //Student这样的定义方式其实是调用了apply方法
        caseOps(Student(19))  //I am 19years old
        caseOps(Shared)       //No property
        
        val worker = Worker(29, 10000.1)
        val worker2 = worker.copy(salary = 19.95)
        val worker3 = worker.copy(age = 30)
    }
}


以上内容是从王家林老师DT大数据课程第29讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859

第29讲视频网站地址:http://pan.baidu.com/s/1hqF5xre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值