scala学习笔记5

scala的层级
1.scala中,每个类都继承自通用的名为any的超类,any类似是java中的object
2.scala还在层级的低端定义了一些有趣的类,如null和nothing扮演通用的子类
3.因为每个类都继承自Any,所以scala程序里的每个对象都能用 == != equals hashCode toString
4.根类Any有两个子类:AnyVal和AnyRel。AnyVal是Scala里每个内建值类的父类,一个是值一个是对象
5.Unit大约对应java的void类型;被用作不反回任何有趣结果的方法的结果类型
6.值类也从类Any继承所有的方法
7.scala.null,scala.nothing.它们是统一的方式处理scala面向对象类型系统的某些“编辑情况”的特殊类型

特质
1.特质是Scala里代码复用的基础单元。
2.特质封装了方法和字段的定义,并可以通过混入到类中重用它们

包和引用
1.丢和能降低程序一部分的细微改变影响到另一部分的正常执行这样的风险
2.减少耦合性的方式之一是使用模块化风格编程写代码
3.scala引包的时候,按需引入用的不是*而是_
4.scala的import子句比java的更为灵活。它们之间存在三点主要差异
      1、import可以写在任何地方
      2、可以指的是(单利或正统的)对象及包
      3、可以重命名或隐藏一些被引用的成员
4.import导入包,最后一个单词可以作为整个路径的别名 import java.sql.{Apple => Mcinto,Orange}
5.引用是将名称转化为_,说明是隐藏该包

断言和单元测试
1.断言和单元测试是检查软件的行为是否需要的两种重要方式
2.assert方法被定义在preef单例对象中,该单例对象的所有成员将在每个scala源文件中被自动引用

内建控制结构
1.Scala内建的控制结构屈指可数,仅有if,while,for,try,match和函数调用而已

函数式对象
1.require 方法带一个布尔型参数,如果不正常抛出异常阻止对象被构造

猜你喜欢

转载自see-you-again.iteye.com/blog/2257111