1、变量定义
var表示可读可写的变量 var string: String = "Hello"
val表示只读的变量 val string: String = "Hello"
Kotlin 有类型推导的特性,因此上述变量定义基本上都可以省略掉类型。
2、final类型的数据
使用const关键字 const val string: String = "Hello"
3、静态变量、静态方法static final
使用companion object{ ……………………………………………… }
4、如何定义数组
val names: Array<String> = arrayOf("a", "b", "c")
val list: Array<String?> = arrayOfNulls(10)
5、定义集合
val list= listOf<String>("a", "b", "c")该集合只能进行只读操作
val mutableList= mutableListOf<String>("a", "b", "c")该集合可以进行读写操作
val map= mapOf<Int,String>()
var mutableMapOf= mutableMapOf<Int,String>()
val set= setOf<String>("a", "b", "c")
val mutableSet= mutableSetOf<String>("a", "b", "c")
6、方法定义
使用fun关键字,后面跟上方法名称,参数列表,返回值类型,不写返回值表示Unit类型,相当于Java中void:
fun test(name: String): Boolean {
... ... ...
}
7、main函数
fun main(args: Array<String>){
...
}
8、对象创建
无惨对象创建:val arsg: Data = Data()
有参数对象创建:val arsg: Parser = Parser("参数一","参数二")
其中Data,Parser等类型修饰可以省略,kotlin可以根据前面的推算出来了
9、变长参数
使用vararg修饰参数:
void title(String... titles){
...
}
10、JavaBean
使用data关键字进行修饰类,放在class之前,就可以实现setter/getter方法,toString方法,hashCode方法,copy方法。这样我们在使用的时候可以直接获取到。例如:
data class WeatherBean(
val message: String
)
11、获得class的实例
val clazz = Hello::class.java
val hello = Hello()
val clazz2 = hello.javaClass
12、权限修饰符
除了和Java一样的之外多了 一个internal,表示模块之间可以进行访问
13、继承
使用【:】表示,例如:class A : B(){ },表示A继承自B
14、接口实现
使用【,】例如:class A,C{ },表示A实现C接口
14、类型转换符
基本类型的转换使用其toXxx方法,例如:toInt
15、枚举
使用enum关键字,用于设置枚举类型数据,enum和class共存静态方法。例如:enum class dataset;
16、单例
单例模式使用object关键字修饰。例如:object Instance
17、When表达式
相当于Java中的switch,但是具有返回值,返回获取的值
18、by关键字
用于属性代理设置
19、init关键字
主构造函数初始化
20、open关键字
Kotlin 默认会为每个变量和方法添加 final 修饰符。如果你确定这个类是会被继承的,那么你需要给这个类添加open修饰符。
21、sealed 密封类
用来表示受限的类层次结构,可以防止非有意的派生。密封类的好处在于使用when表达式,如果能覆盖所有情况,无需再添加
else子句。
22、!!操作符
显示获取空指针异常,如果数据可以为空不加的话连编译都不通过。
23、类型判断符 is
等价于Java中的instanceof,但是不用强制类型转换。
24、范围操作符 .. 以及 in
表示介于某一范围内,例如:i in 1..10,表示i在1到10之间。
25、运算符
(1)===表示引用的比较,相当于Java中的==,
(2)==表示equals
(3)a<b相当于:a.compareTo(b)<0
(4)a>b相当于:a.compareTo(b)>0
26、扩展方法
用于对其他类的扩展,方法名称前面需要加上【扩展类名.方法名称】扩展方法不能有修饰符val或者var,例如Context的吐司:
fun Context.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT){
Toast.makeText(this,message,duration).show()
}
27、Lambda 表达式
Lambda 表达式,其实就是匿名函数,可以作为参数或者方法,构成为:参数列表 -> 表达式,例如:
left: Int, right: Int->left + right
Lambda 表达具有返回值,返回值就是表达式的值。
28、构造函数
(1)主构造函数:写在类头中,跟在类名后面,在主构造函数中不能有任何代码实现,如果有额外的代码需要在构造方法中执行,你需要放到init代码块中执行。例如:
class data(val name: String){
init{ 初始化相关代码 }
}
(2)次构造函数:使用constructor修饰,次构造函数不能有声明 val 或 var,this表示委托给父类
constructor(name: String, age: Int): this(){
var表示可读可写的变量 var string: String = "Hello"
val表示只读的变量 val string: String = "Hello"
Kotlin 有类型推导的特性,因此上述变量定义基本上都可以省略掉类型。
2、final类型的数据
使用const关键字 const val string: String = "Hello"
3、静态变量、静态方法static final
使用companion object{ ……………………………………………… }
4、如何定义数组
val names: Array<String> = arrayOf("a", "b", "c")
val list: Array<String?> = arrayOfNulls(10)
5、定义集合
val list= listOf<String>("a", "b", "c")该集合只能进行只读操作
val mutableList= mutableListOf<String>("a", "b", "c")该集合可以进行读写操作
val map= mapOf<Int,String>()
var mutableMapOf= mutableMapOf<Int,String>()
val set= setOf<String>("a", "b", "c")
val mutableSet= mutableSetOf<String>("a", "b", "c")
6、方法定义
使用fun关键字,后面跟上方法名称,参数列表,返回值类型,不写返回值表示Unit类型,相当于Java中void:
fun test(name: String): Boolean {
... ... ...
}
7、main函数
fun main(args: Array<String>){
...
}
8、对象创建
无惨对象创建:val arsg: Data = Data()
有参数对象创建:val arsg: Parser = Parser("参数一","参数二")
其中Data,Parser等类型修饰可以省略,kotlin可以根据前面的推算出来了
9、变长参数
使用vararg修饰参数:
void title(String... titles){
...
}
10、JavaBean
使用data关键字进行修饰类,放在class之前,就可以实现setter/getter方法,toString方法,hashCode方法,copy方法。这样我们在使用的时候可以直接获取到。例如:
data class WeatherBean(
val message: String
)
11、获得class的实例
val clazz = Hello::class.java
val hello = Hello()
val clazz2 = hello.javaClass
12、权限修饰符
除了和Java一样的之外多了 一个internal,表示模块之间可以进行访问
13、继承
使用【:】表示,例如:class A : B(){ },表示A继承自B
14、接口实现
使用【,】例如:class A,C{ },表示A实现C接口
14、类型转换符
基本类型的转换使用其toXxx方法,例如:toInt
15、枚举
使用enum关键字,用于设置枚举类型数据,enum和class共存静态方法。例如:enum class dataset;
16、单例
单例模式使用object关键字修饰。例如:object Instance
17、When表达式
相当于Java中的switch,但是具有返回值,返回获取的值
18、by关键字
用于属性代理设置
19、init关键字
主构造函数初始化
20、open关键字
Kotlin 默认会为每个变量和方法添加 final 修饰符。如果你确定这个类是会被继承的,那么你需要给这个类添加open修饰符。
21、sealed 密封类
用来表示受限的类层次结构,可以防止非有意的派生。密封类的好处在于使用when表达式,如果能覆盖所有情况,无需再添加
else子句。
22、!!操作符
显示获取空指针异常,如果数据可以为空不加的话连编译都不通过。
23、类型判断符 is
等价于Java中的instanceof,但是不用强制类型转换。
24、范围操作符 .. 以及 in
表示介于某一范围内,例如:i in 1..10,表示i在1到10之间。
25、运算符
(1)===表示引用的比较,相当于Java中的==,
(2)==表示equals
(3)a<b相当于:a.compareTo(b)<0
(4)a>b相当于:a.compareTo(b)>0
26、扩展方法
用于对其他类的扩展,方法名称前面需要加上【扩展类名.方法名称】扩展方法不能有修饰符val或者var,例如Context的吐司:
fun Context.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT){
Toast.makeText(this,message,duration).show()
}
27、Lambda 表达式
Lambda 表达式,其实就是匿名函数,可以作为参数或者方法,构成为:参数列表 -> 表达式,例如:
left: Int, right: Int->left + right
Lambda 表达具有返回值,返回值就是表达式的值。
28、构造函数
(1)主构造函数:写在类头中,跟在类名后面,在主构造函数中不能有任何代码实现,如果有额外的代码需要在构造方法中执行,你需要放到init代码块中执行。例如:
class data(val name: String){
init{ 初始化相关代码 }
}
(2)次构造函数:使用constructor修饰,次构造函数不能有声明 val 或 var,this表示委托给父类
constructor(name: String, age: Int): this(){
}