第四章 类和对象

  • 类、字段和方法

  • 类定义中可以放置字段和方法;

  • 方法用关键字 def 定义;
  • 字段保留对象的状态或数据;
  • Scala里把成员公开的方法是不显示地指定任何访问修饰符。即,Public是Scala的默认访问级别。
  • Scala里方法参数的一个重要特征是他们都是val的,不能在函数中对参数进行重新赋值。

  • 分号推断规则 除非以下任一情况出现,否则行尾被认为是一个分号

  • 疑问行由一个不能合法作为语句结尾的字结束,如句点或中缀操作符;

  • 下一行开始于不能作为语句开始的词;
  • 行结束于括号或方括号内部,因为这些符号不可能容纳多个语句;

  • Singleton(单例)对象

  • 除了用关键字 object 替换了关键字 class 以外,单例对象的定义看上去与类型一一致;

  • 如果单例对象与某个类共享同一个名称时,它就被称为是这个单例对象的伴生对象;
  • 类和其伴生对象必须定义在同一个源文件里;
  • 类被称之为这个单例对象的伴生类;
  • 两者之间可以互相访问私有成员;
  • 单例对象在第一次被访问时才会被初始化;

  • Scala程序

  • 任何带有合适签名的main方法的单例对象都可以作为程序的入口点;

  • Scala的基本编译器:scalac;
  • 如果文件是以定义结尾的,则不是scala脚本,脚本必须以结果表达式结束;
  • Scala发布包中包含一个叫做fsc的Scala编译器后台,可以将文件列表发送给后台程序,由其完成编译,使用fsc只需在首次运行时等待Java运行环境的启动;

  • Application特质

  • 该特质可以减少一些输入的工作,单例对象 extends App 就可以当作程序入口执行,而不需要写main方法;

  • 原因:特质Application声明了带有合适签名的main方法,并被单例对象继承,使之可以像Scala程序那样;
文章导航