Scala 面向对象编程之对象

Scala 面向对象编程之对象

1.Scala 中的 object

object 至关于 class 的单个实例,一般在里面放一些静态的 field 或者 method;
在 Scala 中没有静态方法和静态字段,可是可使用 object 这个语法结构来达到一样的目的。web

object 做用:编程

  • 存放工具方法和常量
  • 高效共享单个不可变的实例
  • 单例模式

2.Scala中的伴生对象

  • 若是有一个 class 文件,还有一个与 class 同名的 object 文件,那么就称这个 object是 class 的伴生对象,class 是 object 的伴生类;
  • 伴生类和伴生对象必须存放在一个.scala 文件中;
  • 伴生类和伴生对象的最大特色是,能够相互访问。

3.Scala中的apply方法

  • object 中很是重要的一个特殊方法,就是 apply 方法;
  • apply 方法一般是在伴生对象中实现的,其目的是,经过伴生类的构造函数功能,来实现伴生对象的构造函数功能;
  • 一般咱们会在类的伴生对象中定义 apply 方法,当遇到类名(参数 1,…参数 n)时 apply 方法会被调用;
  • 在建立伴生对象或伴生类的对象时,一般不会使用 new class/class() 的方式,而是直接使用 class(),隐式的调用伴生对象的 apply 方法,这样会让对象建立的更加简洁;

4.Scala 中的 main 方法

  • 同 Java 同样,若是要运行一个程序,必需要编写一个包含 main 方法的类;
  • 在 Scala 中,也必需要有一个 main 方法,做为入口;
  • Scala 中的 main 方法定义为 def main(args: Array[String]),并且必须定义在 object 中;
  • 除了本身实现 main 方法以外,还能够继承 App Trait,而后,将须要写在 main 方法中运行的代码,直接做为 object 的 constructor 代码便可,并且还可使用 args 接收传入的参数;

喜欢就点赞评论+关注吧app

这里写图片描述

感谢阅读,但愿能帮助到你们,谢谢你们的支持!svg