1.扩展方法中的this与成员方法中的this一样,也代表调用该方法的对象
2.Kotlin完全支持直接对泛型类进行拓展:
fun <T>List<T>.shuffle():List<T>{}
3.Kotlin允许属性拓展,但是拓展的属性只能是计算属性,因此有如下限制
拓展的属性不能有初始值
不能用field关键字显示访问幕后字段
拓展只读属性必须提供getter方法:拓展读写属性必须提供getter、setter方法。此外由于拓展属性的本质就是getter和setter方法,因此也可用泛型函数的形式来定义扩展属性
4.Kotlin的final,open修饰符不能修饰局部变量
5.Kotlin提供了const来修饰可执行“宏替换”的常量
6.Kotlin的接口主要有两个用途,一是定义变量,也可用于强制类型转换,二是被其他类实现
7.嵌套类只能访问外部的其他嵌套类,不能访问外部的其他任何成员
8.在类中定义的对象声明,可使用companion修饰,这样该对象就变成了伴生对象,