1.必须是使用case 定义object类 package config import org.apache.spark.sql.SparkSession import org.apache.spark.{SparkConf, SparkContext} case object conf { val confs: SparkConf = new SparkConf().setMaster("local").setAppName("job") val sc = new…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
1. 类.字段和方法 Scala 用 class 关键字定义类,一旦定义好一个类,就可以使用 new 关键字创建对象. Scala 使用 new 调用无参构造器时,可以不使用 (),推荐不使用括号: class MyClass { // MyClass 的定义 } val a = new MyClass 在类的定义中,可以填入字段(field)和方法(method),两者统称为成员(member). 字段保留了对象的状态,即数据. 方法使用数据执行计算. 使用 var 或者 val 定义字段,使…
什么是面向对象? 在软件的设计过程中的两种方式: 把程序按照算法的执行步骤来拆解,一步步实现,这是面向过程编程: 把程序按照现实世界的理解,分成不同对象,通过多个对象之间的相互作用,来完成程序的最终功能,这是面向对象编程: 面向对象的三要素:类.对象和继承 面向对象特点:封装.继承.多态 面向对象好处: 按照我们对于现实世界的理解来把程序划分为不同的对象. 容易理解为整个程序的设计思路:使用继承.封装.多态的特性,设计出高内聚.低耦合的系统结构. 容易维护现有代码. 容易拓展新增功能: 类的定义…
样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定. //样本类case class //层级包括一个抽象基类Expr和四个子类,每个代表一种表达式 //样本类自动添加与类名一致的工厂方法 abstract class Expr case class Var(name:String) extends Expr//括号内参数不用加val,默认为加val的字段 case class Number(num:Double) extends Expr…
es6新增class关键字使用方法详解. 通过class关键字,可以定义类.基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰.更像面向对象编程的语法而已. 实例讲解: es5的定义类方法: function extend(obj1,obj2){//合并对象属性的方法 for(var attr in obj2){ obj1[attr]=obj2[attr]; } }; function Person(opt){ t…
在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自己的程序编写规则,并且具有一些特殊方法. 下面是笔者分别针对自定义枚举类和enum枚举类的程序设计. [1] 自定义枚举类 /*------------------------- JDK1.5之前通过自行设计程序,来自定义枚举类 下面以季节为例自定义枚举类 ---------------------…
一:定义类   二:实例化对象 //定义类 class Ren { var $name; var $sex; var $age; function Say() { echo "{$this->name}在说话"; } } //实例化对象 $Ren = new Ren(); //调用对象的成员: $Ren->name = "张三"; $Ren->Say(); 显示结果: 三:$this关键字 $this->name;  this代表该对象,如果…
Scala的sealed关键字 缘起 今天在学习Akka的监控策咯过程中看到了下面一段代码: def supervisorStrategy(): SupervisorStrategy = OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 10 seconds) { case _: ArithmeticException => Resume case _: IllegalArgumentException => Restart ca…