1.val与var
- val —–> value 不可变值,相当于java中final变量。
- var —–> variable 可变值,相当于java普通变量。
2.object与companion object
- object : 声明static对象,常用作单例。
特点:不可定义构造函数。使用时才立即初始化。 - companion object : 译作伴随对象,可以理解为类静态成员。
3.open与abstract
- open : 声明此类非final,可以继承。如果一个class没有同时声明open,则此类不能被继承,相当于final类。
- abstract : 跟java抽象类一样,可以有未实现方法。而open不能有未实现方法。
- 题外话:那么单例object能不能被继承呢?
答案是不能的,因为object类没有共有构造函数,只有私有构造函数,子类无法调用父类的构造函数,因而无法被继承。这与java是一样的。
4.操作符==,!=,===,!==,[]
以下均为在kotlin的意义
- ==:重载为a?.equals(b) ?: (b===null) ,即调用equals。
- ===:判断两个引用是否相等。
- []:重载get,set方法。
特别注意
- 以上操作符使用均针对对象,而像int等基本数据类型的操作符,是没有改变的。
5.匿名内部类
|
|
6.静态代码块与非静态代码块
- 静态代码块
|
|
- 非静态代码块
|
|
7.for循环
(1)普通循环
|
|
(2)迭代器
|
|
8.data class
写java bean很easy。
有参构造函数
|
|
无参构造函数
给参数加默认值
|
|
9.数组
基本数据类型
|
|
对象数组
|
|
空数组
|
|