您的位置:首页 > 其它

Scala class和case class的区别

2016-07-20 17:37 447 查看
 在Scala中存在case class,它其实就是一个普通的class。但是它又和普通的class略有区别,如下:

  1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;

  2、toString的实现更漂亮;

  3、默认实现了equals 和hashCode;

  4、默认是可以序列化的,也就是实现了Serializable ;

  5、自动从scala.Product中继承一些函数;

  6、case class构造函数的参数是public级别的,我们可以直接访问;


  7、支持模式匹配;

  其实感觉case class最重要的特性应该就是支持模式匹配。这也是我们定义case class的唯一理由,难怪Scala官方也说:It
makes only sense to define case classes if pattern matching is used to decompose data structures.
。来看下面的例子:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala class