1.var vs val val 名称:类型 = xxx;
var: 变量
val: 值 (不能变)类似于java的final
2.Scala基本数据类型:
Byte/Char
Short/Int/Long/Double/Float
Boolean
3.lazy的使用
lazy val a = 1;
返回 a:Int = <lazy>
只有第一次使用a的时候才会赋值
4.面向对象
(1)封装 一个person的信息都可以封装在这一个类里面
(2)继承 一个rapper可以继承person的信息
(3)多态 一个person下可以有画家 说唱歌手 People masiwei = new rapper()
5.Abstract class抽象类
必须override
6.伴生类和伴生对象
如果一个class还有一个和class同名的Object,那么我们就称这个class是这个Object的伴生类,反之亦然
(object本身就是一个单例对象)
7.只要看到同名的伴生类和伴生对象,如果写一个ApplyTest(),那么他默认就会走Object.apply()方法 (死记硬背),如果写一个new ApplyTest(),那么他默认就会调用class.apply()方法
- trait 其实就是java里的interface