大数据学习之Scala面向对象41

20Scala面向对象

Scala的面向对象

我们要封装数据,定义模板等操作,所以我们需要面向对象。

1)scala中的单例对象

scala当中,是没有static的,scala给我们提供了单例模式的实现方法。就是使用

关键字object。

static在java中修饰属性和方法,目的是直接类名.进行调用。

2)scala类与构造器的使用

scala中主构造器:

定义在类名后面的构造器叫主构造器

如果主构造器中成员变量属性没有被val var修饰的话,该属性不能被访问
相当于java中没有对外提供get方法

如果成员属性使用var修饰的话,相当于java中对外提供了get方式和set方式
如果成员属性使用val修饰的话,相当于java中对外只提供了get方式

scala辅助构造器:

定义在class类中,可以有多个辅助构造器

测试结果:

3)构造器的访问权限

在主构造器或者辅助构造器前加上private修饰符即可

构造该对象时就会报错

4)类的访问权限

直接在类的前面加上private[this]即可

[this]代表当前包下的都可以访问,其他任何包都不可以访问包括子包,默认也就是this

[demo]类的前面如果加上包名,表示当前类在当前包及其子包可见,可以访问

当前包测试,使用this

其他包下就会报错!!!!  

使用 [包名]

类的前面如果加上包名,表示当前类在当前包及其子包可见,可以访问

5)伴生对象

什么是伴生对象? 单例类名与类名相同

在伴生对象中可以访问类的私有成员方法和属性

6)  特质

相当于java中Interface接口,trait就是抽象类trait跟抽象类最大的区别:trait支持多重继承

 

一般情况

 

编写Animal

编写Pig

 

混入特质

就加一个with

7)抽象类

就在class前面加一个abstract

继承抽象类可以再继承特质 但是抽象类写在前 with连接

8)模式匹配 match case

原文地址:https://www.cnblogs.com/hidamowang/p/11032270.html