Scala面向对象和模式匹配】的更多相关文章

我们要封装数据,定义模板等操作,所以我们需要面向对象. 一.scala中的单例对象 在scala当中,是没有static的,scala给我们提供了单例模式的实现方法.就是使用关键字object. static在java中修饰属性和方法,目的是直接类名.进行调用. 在scala中object是一个单例对象 在scala中object定义的成员变量和方法都是静态的 可以通过 类名. 来进行调用 1.ScalaTest object ScalaTest { //定义成员变量 val name: Str…
scala 面向对象之 继承 scala   1.extends Scala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和method:然后子类可以在自己内部放入父类所没有,子类特有的field和method:使用继承可以有效复用代码   class Person { private var name = "leo" def getName = name } class Student extends Person {…
昨晚听了王家林老师3000门徒spark系列课程的第二课,讲述了scala面向对象知识,并且带着过了一遍Spark核心类:SparkContent,RDD的代码,下面写一下心得: RDD是抽象类,实现了Serializable和Logging接口,有很多类继承了RDD类来实现不同功能的RDD. SparkContent默认构造器传入config:SparkConf  实现了Logging和ExecutorAllocationClient接口. 类默认构造器会执行类中没有在成员函数中的所有代码.…
今天跟随王老师学习了从源码角度去分析scala中的模式匹配的功能.让我们看看源码中的这一段模式匹配: 从代码中我们可以看到,case RegisterWorker(id,workerHost,........){}这里为模式匹配,而我们的模式匹配类RegisterWorker之前就已定义好,如下图: 我们可以看到,我们的模式匹配类是已经定义好的,当我们的master接收到worker发来的消息时,进行模式匹配: . 这里还有一个知识点,我们可以发现,当我们进行模式匹配时,我们并没有使用new方法…
Scala 经典的模式匹配和尾递归 package io import java.io.{BufferedWriter, File, FileWriter} import java.text.SimpleDateFormat import scala.annotation.tailrec import scala.io.Source /** * author: HuaZhe Ray * * describe: 计算服务调用平均时长 * * createDate: 2017/12/15 * cre…
一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹配的基本格式如下: data match { case ... => 执行语句 case ... => 执行语句 case _  => 执行语句 } 其中,data表示将要进行模式匹配的对象,match是模式匹配的关键字,后面紧跟的{}中包含若干条匹配的方向,且只会匹配其中满足条件的第一条:…
模式匹配 package com.zy.scala import scala.util.Random /** * 模式匹配 */ object CaseDemo { def main(args: Array[String]): Unit = { //匹配字符串 val arr1 = Array(" hadoop", " zookeeper", " spark ") val name = arr1(Random.nextInt(arr1.lengt…
Scala Scala是一门运行时基于JVM的编程语言,具备函数式编程和面向对象特点. 基本知识 basics 任意词均可作为符号名,对于关键词,以反引号包裹,避免使用下划线,避免带美元符的名字. 声明类型为Type的符号x的方式是先给出符号后通过冒号指定类型,x:Type,不同于java/c++等语言的Type x形式. 变量声明 variable/constant declaration 关键字 val, var, lazy val, final val val x= 0 //自动推断出类型…
面向对象编程OOP: Scala vs Java 都有这三特性 封装:把属性.方法封装到类中 Person: int id, String name, Date birthday.... 需要getter/setter eat.sleep.... 继承:父类和子类之间的关系 override重写 User extends Person exam...... //即可以继承别的类,也可以有自己的属性 多态:*****级别,父类引用指向子类对象 精髓所在 开发框架的基石. Person person…
6.1 基本介绍 6.1.1 Scala语言是面向对象的 1) Java时面向对象的编程语言,由于历史原因,Java中海存在着非面向对象的内容:基本类型,null,静态方法等 2) Scala语言来自于Java,所以天生就是面向对象的语言,而且Scala时纯粹的面相对象的语言,即在Scala中,一切皆为对象 3) 在面向对象的学习过程中可以对比着Java语言学习 6.1.2 类和对象的区别和联系 1) 类是抽象的,概念的代表一类事物,比如人类,猫类... 2) 对象是具体的,实际的,代表一个具体…