在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。虽然时隔一年但是我们现在学习还不算太迟.
一丶声明变量
一次赋值(只读)的局部变量: var
: 任意类型 val
: 常量
val a: Int = 1 // 立即赋值
val b = 2 // 自动推断出 `Int` 类型
val c: Int // 如果没有初始值类型不能省略
c = 3
/*******************************************************/
var x = 5 // 自动推断出 `Int` 类型
x += 1
二丶方法
override
: 父类方法/ fun
: 方法声明 /?表示可能为空 / 无返回值 (Unit 返回值的函数,如果一个参数没有指定返回值类型,则这个函数的返回值类型是 Unit 的,当然你也可以显式的指定返回类型为任何类型)
//有返回值
fun sum(a: Int,b: Int): Int{
retrun a + b
}
//等同于
fun sum(a: Int,b: Int) = a + b
//
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}
//等同于
fun maxOf(a: Int, b: Int) = if (a > b) a else b
//慢慢消化吧~
//Unit 可以理解成java方法中的void关键字
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
//Unit 返回类型可以省略:
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
三丶继承
- 参数继承
view instanceof Button
toview is Button
- class继承 class MainActivity : AppCompatActivity(){}
四丶修饰符
- abstract //抽象类标示
- final //标示类不可继承,默认属性
- enum //标示类为枚举
- open //类可继承,类默认是final的
- annotation //注解类
- private //仅在同一个文件中可见
- protected //同一个文件中或子类可见,不可修饰类
- public //所有调用的地方都可见
- internal //同一个模块中可见,若类不加修饰符,则默认为该修饰符,作用域为同一个应用的所有模块,起保护作用,防止模块外被调用。
五丶实体类
- 注意:全局变量一定得初始化,而局部变量可以不初始化,这是和java不同的地方
//class有构造参数时
class PersonA(a: Int,b:String){
var id = 0
var name = ""
}
var p = PersonA(2,"helloWorld")
//class无构造参数时
class PersonB{
var id = 0
var name = ""
}
var p = PersonB()
p.id = 2
p.name = "helloWorld"
六丶静态块companion object
class A() {
companion object {
val TAG_SIZE = 100
}
}
//使用:
var i = A.TAG_SIZE
//等价于 java中的静态常量static
七丶智能字符串
- java:
println("---size:"+list.size());
- kotlin:
print("---size: ${list.size},first: ${list[0]}")
var i: Int = 1
var s: String = "helloWorld:$i"
//值为 helloWorld:1
八丶范围判断
- java if(a >= 3 && a<= b){ int i='a'}
- kotlin: 是两个.来表示范围
if(c !in 'a'..'z'){
var i: Int = 'a'.toInt()
}
更多详细语法基础请参考 kotlin中文官网:https://www.kotlincn.net/
附加kotlin for android 的开发中文版 https://download.csdn.net/download/yf1252555020/10664563