Chapter 04 《Classes and Objects》

作者: liqing151 | 来源:发表于2018-06-12 14:51 被阅读3次
    1. 类一旦创建之后,就可以使用new来实例化对象。类中的字段和方法被统称为成员。字段是实例变量,每一个实例拥有一个。
    1. 追求健壮性的一个重要手段就是在对象的整个生命周期,对象的状态,也就是实例变量的值是有效的。第一种方法是将实例变量声明为private,保证所有对状态的操作,都在类的内部。Scala中的默认访问级别就是public
    1. Scala中定义的函数入参都是val而不是var,因此在方法中不能对入参进行重新赋值。方法返回的是计算出来的最后一个表达式的值。尽量避免return关键字的出现。方法的返回类型虽然可以通过编译器推断出来,但是还是推荐将方法的返回类型标注出来,方便阅读者进行查看。方法的副作用通常指的是改变方法的外部状态或者执行I/O操作。关于副作用在《Function Programming in Scala》有详细的介绍。
单例对象
    1. Scala为了保持纯粹的面向对象特性(所有的值都是对象),不允许有静态变量的存在,因此设定了单例对象,该对象的定义和类定义很相似,使用关键字object
    1. 当单例对象和某个类共用同一个名字的时候,被成为该类的伴生对象,必须在同一个源码文件中进行定义,类和它的伴生对象可以相互访问对方的私有成员,可以直接使用Object.Method这样的格式来调用方法。

在class C中调用C.privateXMethod
在单例对象object C中调用(new C).privateYMethod

    1. 单例对象和类的区别,单例对象不接受参数,但是类可以接受。因为没有办法通过new来实例化单例对象,也就不可能进行传传参。每一个单例对象都是通过一个静态变量引用合成类(类名+$)的实例来实现的。在代码首次访问时才被初始化。
    1. 没有同名类的单例对象叫做孤立对象,可以是工具类,定义Scala应用程序的入口等。
    1. 运行Scala程序,必须要提供给一个独立对象的名称。需要包含main函数
def main(args: Array[String]): Unit = {}

main函数为程序的入口;也可以简单的通过extends App来进行实现。

    1. Scala的每一个源码文件都隐式的引入了java.langscala包的成员,Predef单例对象的所有成员。
    1. 使用scalac命令来编译源文件。每一次编译器启动的时候,都会扫描jar文件以及完成一些其他的初始化工作,速度会比较慢。可以使用fsc服务器守护线程,绑定在计算机的某个端口上,scala的分发包会将源码发送给fsc,因为已经在运行了,所以会立即编译。

相关文章

网友评论

    本文标题:Chapter 04 《Classes and Objects》

    本文链接:https://www.haomeiwen.com/subject/qsyleftx.html