版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
第五章
/**
* 类:
* 类的构造方法和类定义混合在一起
* var字段在编译时默认生成getter/setter方法
* val字段在编译时默认生成getter方法
* 可以自定义getter/setter(名称符合规范即可)
* private[this]定义对象私有域
* 利用@BeanPropertiy生成JavaBean
* 辅助构造器名称为this,方法体以主构造器或其他辅助构造器开头
* 主构造器与类交织在一起,构造器中的字段被定义为成员变量
* 主构造函数中参数如果不+val/var或private修饰,则为私有成员变量,否则会生成对应的getter/setter
* */
第六章
/**
* 对象:
* 类的伴生对象用object声明,用于定义工具类或常量内或静态方法
* 伴生对象可以扩展抽象类或特质
* apply方法扩展和简化构造函数
* main(args: Array[String]) = class X extends App
* */
第七章
/**
* 包:
* 包也可以像内部类那样嵌套
* package定义的包并不受目录package的限制
* 下层包作用域中的类可以防范上层包作用域中的内容
* 串联声明包时,子包不可用
* 声明函数时可以利用private[packagename]指定包可见性
* import package._ 引入包下所有成员
* 任何地方都可以声明包
* import java.util.{HashMap => JavaHashMap} 重命名
* import java.util.{HashMap => _} 隐藏Java中的HashMap
* */
第八章
/**
* 继承:
* 用extends关键字实现类的继承
* 用final将类声明为不可扩展的
* 用override覆盖父类方法
* 只有主构造函数能直接调用超类构造函数(与类定义交织在一起)
* def ids: Int 抽象方法
* val id: Int 抽象字段
* */