1.类的定义

2.3 Scala面向对象编程基础

 Unit表示什么都不返回

2.3 Scala面向对象编程基础

方法体最后一句的值,就是方法的返回值。

2.3 Scala面向对象编程基础 

2.类成员的可见性

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

3.方法的定义方式

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

定义方法的时候加圆括号,调用时可以加圆括号c.getValue()也可以不加圆括号c.getValue;

定义方法的时候不加圆括号,调用时不可以加圆括号。

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

4.(类)构造器

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

和Java区别在于,scala可以在类的名称后面圆括号里面直接给出一些参数,而且构造器里面的参数加了val或var关键字去修饰,系统会自动把它变成自己内部的成员字段,并且提供get和set方法;如果没有加val或var关键字,那么它不会变成一个内部字段,只是简单的起到往里传参的作用,不会生成内部成员。

 2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

二、对象

2.3 Scala面向对象编程基础

1.单例对象(singleton object)

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.apply方法

apply方法是Scala中独有的

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

如果定义了类的apply方法,当你给这个类生成一个实例,用这个实例名称()括起来,给他传递参数的时候,它会自动去调用它的apply方法。

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

 2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础  

3.update方法

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

4.unapply方法

根据已有对象,提取出对象的参数。

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

主函数的第一条语句:先执行右边调用apply函数,再执行左边调用unapply函数

 

三、继承

2.3 Scala面向对象编程基础 

1.抽象类

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

抽象字段:只定义,没有初始化值

抽象方法:只定义方法,没有实现方法体

2.3 Scala面向对象编程基础

 

2.3 Scala面向对象编程基础

2.扩展类

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

  • 重载父类的抽象成员override关键字是可选的,例如:子类实现父类中的一些抽象成员或者把原来的字段给覆盖了,这个override是可选的。
  • 重载父类的非抽象成员override关键字必须要写
  • 只能重载val类型字段,不能重载var字段

2.3 Scala面向对象编程基础

举例:

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

Scala类的顶层是一个叫Any的抽象类,所有的类都是从这里继承下来的。

从Any类派生出两个子类:AnyVal和AnyRef,AnyVal保存在寄存器中,不能实例化;AnyRef保存在堆中,可以实例化;Null是所有引用类型的子类型

3.Option类

2.3 Scala面向对象编程基础

 

 Option类是一个抽象类,它有个子类叫Some子类,

2.3 Scala面向对象编程基础

 

当不确定类的返回值是否为空时,可以将返回值类型设置为Option;如果无返回值时,返回None,有返回值时,会封装到Some对象中返回来。

举例:

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

四、特质

Scala的特质类似于Java中的接口,不仅实现了接口的功能,还可以定义其他特性;

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

举例1:

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

举例2:一个类继承父类且混入多个特质

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

五、模式匹配

2.3 Scala面向对象编程基础

scala中case语句后面不需要加break,每次执行一个case,会自动退出。

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础 

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

自动调用半生对象的apply方法生成实例 

第三个case Car的功能是把当前传进来的值提取出来,提取出来之后打印println

六、包

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

举例:

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

2.3 Scala面向对象编程基础

 

 

 

 

 

参考文献:

【1】Spark编程基础_中国大学MOOC(慕课)

相关文章: