Scala样例类及底层实现伴生对象
package com.wyh.day01 /**
* 样例类的使用
* 1、使用case修饰类
* 2、不需要写构造方法,getter,setter方法,toString方法
* 3、直接通过对象名进行调用
* 4、自动重写方法
*
*/
object ScalaApply {
def main(args: Array[String]): Unit = { val animal = Animal("小黄",2) println(animal) val dog = Dog.apply("大黄",2)
println(dog) } } /**
* 样例类
*/
case class Animal(name:String,age:Int) /**
* 解释样例类使用的时候为什么不需要new关键字
*
* 伴生对象
*/
class Dog(name:String,age:Int){
var _name:String = name
var _age:Int = age override def toString: String = _name+"\t"+_age
} /**
* 伴生对象
*/
object Dog{ def apply(name:String,age:Int): Dog = { new Dog(name,age)
} }
Scala样例类及底层实现伴生对象的更多相关文章
- scala 样例类
一.case class 的特征 package com.jason.qianfeng case class Message(sender: String, receiver: String, bod ...
- 学好Spark/Kafka必须要掌握的Scala技术点(二)类、单例/伴生对象、继承和trait,模式匹配、样例类(case class)
3. 类.对象.继承和trait 3.1 类 3.1.1 类的定义 Scala中,可以在类中定义类.以在函数中定义函数.可以在类中定义object:可以在函数中定义类,类成员的缺省访问级别是:publ ...
- 【Scala篇】--Scala中Trait、模式匹配、样例类、Actor模型
一.前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大. 模式匹配机制相当于java中的switch-case. 使用了case关键字的类定义就是样例类(case ...
- Scala学习十四——模式匹配和样例类
一.本章要点 match表达式是更好的switch,不会有意外调入下一个分支 如果没有模式能够匹配,会抛出MatchError,可以用case _模式避免 模式可以包含一个随意定义的条件,称做守卫 你 ...
- Scala集合库、模式匹配和样例类
package com.yz8 import org.junit.Test class test { @Test def test: Unit = { val ints = List(1,5,7,6, ...
- Scala模式匹配和样例类
Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 1.字符匹配 def mai ...
- Scala基础:模式匹配和样例类
模式匹配 package com.zy.scala import scala.util.Random /** * 模式匹配 */ object CaseDemo { def main(args: Ar ...
- 大数据学习day16------第三阶段-----scala04--------1. 模式匹配和样例类 2 Akka通信框架
1. 模式匹配和样例类 Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配 1.1 模式匹 ...
- Scala-Unit6-final/type关键字、样例类&样例对象
一.关键字 1.final关键字 用final修饰的类:不能被继承 用final修饰的方法:不能被重写 注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变 ...
- Scala--模式匹配和样例类
模式匹配应用场景:switch语句,类型查询,析构,样例类 一.更好的switch val ch :Char = '+' val sign = ch match{ case '+' => 1 c ...
随机推荐
- API开发与管理规范v1.0
1. 协议规范 为了确保不同业务系统之间以及前后端的的数据交互的快捷性,通讯协议统一约定如下: 对内调用的API接口统一使用 HTTP协议 对外互联网发布的API建议使用HTTPS协议也可以使用HTT ...
- Arrays Basics
`#include ; using namespace std; int main() { int A[5];//数组的声明 int B[5] = { 2,4,6,8,10 };//数组的声明和初始化 ...
- 在Ubuntu系统上手动安装GCC环境
Ubuntu系统是自带GCC安装指令的apt install gcc,当前apt源中gcc版本为5.4.0,版本太低,推荐手动安装gcc8.3.0 手动安装gcc8.3.0之前需要先确保安装gcc环境 ...
- Qt音视频开发45-音视频类结构体参数的设计
一.前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结 ...
- Qt编写物联网管理平台35-实时曲线
一.前言 设备采集到的数据,通过曲线展示也是一种非常好的方式,尽管之前已经有了表格数据展示.设备面板展示.设备地图展示等,实时曲线也是一种不错的方式,这个用户自由选择,反正通过端口已经拿到了所有要采集 ...
- git path
github -> deepin-4090-edd25519-key openl -> deepin-4090-rsa-key gitee -> deepin-4090-dsa-ke ...
- svtools简介
svtools - Comprehensive utilities to explore structural variations in genomes svtools不仅是一个工具,更因为它带有许 ...
- Elasticsearch-总结列表
1.lucene基本概念 目前以 Lucene 为基础建立的开源可用全文搜索引擎主要是 Solr 和 Elasticsearch. Solr 和 Elasticsearch 都是比较成熟的全文搜索引擎 ...
- 分圆多项式(cyclotomic polynomial)
最近论文中经常遇到分圆多项式,现在系统的学习一下! 本原单位根 之前介绍n次单位根,现在详细学习一下n次本原单位根(n-th primitive unit root) 一个复数是n次单位根,当且仅当具 ...
- SM9-加解密
算法过程 程序实现 ///************************************************************************ // File name: ...