第九周 第3章 Scala面向对象
Scala面向对象编程
1 | Scala也是一门面向对象的编程语言,下面我们就来学习一下Scala的面向对象编程 |
类-class
1 | 首先看一下类 |
1 | class Person{ |
1 | scala> val p = new Person() |
constructor
1 | 类创建好了,下面我们来看一下类中的构造函数,Scala类中的构造函数可以分为主构造函数和辅助构造函数 |
主constructor
1 | 那先来看一下主构造函数 |
1 | class Student(val name:String,val age:Int){ |
1 | 在创建对象的时候,类中的println语句执行了,说明这个语句属于主构造函数中的代码 |
辅构造函数
1 | Scala中,可以给类定义多个辅助constructor,类似于java中的构造函数重载 |
1 | class Student { |
对象-object
1 | 前面我们学习的scala中的class和java中的class是类似的,下面来看一个java中没有的内容,叫Object |
1 | object Person { |
1 | 执行,直接通过Object的名称调用属性或者方法即可,类似于Java中的静态类 |

伴生对象
1 | 前面学习了class和object,那下面再来看一个特殊的概念,伴生对象 |
1 | object Person { |
1 | scala> new Person("tom",20).sayHello |


apply


1 | apply是object中非常重要的一个特殊方法,通常在伴生对象中实现apply方法,并在其中实现构造伴生类对象的功能 |
1 | 从Array object的源码中可以看出来,它里面就是在apply方法内部使用new Array创建的对象 |
1 | scala> new Person("tom") |
main方法
1 | 接下来看一下scala中的main方法 |


1 | 接着创建maven项目 |


1 | 点击开启自动引入依赖 |

1 | 到这还没完,因为此时我们是无法创建scala代码的,这个项目中也没有集成scala的sdk,只有java的 |






1 | 此时查看项目的依赖,发现scala的sdk已经添加进来了。 |

1 | 以后再创建想要创建scala的maven项目,只需要进入到这个界面确认项目中是否有scala的依赖,没有的话直接点击右边的加号按钮添加即可 |
1 | 好,idea的scala开发环境配置好了,但是我一般还是喜欢再增加一些配置 |


1 | 但是注意了,这样创建的scala目录是有问题的,你有没有发现这个目录的颜色和java目录的颜色都不一样 |

1 | 这样操作之后,就发现scala的目录颜色就正常了 |
1 | 好,那下面就可以正式开始写代码了,scala相关的代码就放到scala目录中 |


1 | 按回车即可创建成功 |
1 | package com.imooc.demo |
1 | 这就是Scala中main方法的用法,注意:main方法只能定义在object中,不能定义在class中 |
接口-trait
1 | 接下来看一个scala中的接口,这个接口也是比较特殊的 |
1 | /** |