Android Kotlin入门二
class
在 Kotlin 中,class
默认是 public
的,所以平常都省略不写。
继承父类和实现接口都用 :
来表示。不同的是继承父类是带 ()
的,即表示构造器,比如上面的 AppCompatActivity()
;而接口则不需要 ()
。
举个例子:
1 | class MainActivity : AppCompatActivity(), View.OnClickListener { |
AppCompatActivity()
就是继承,而 View.OnClickListener
就是实现。
method
从比较的代码中可以知道:
在 Kotlin 中默认方法的修饰符就是
public
,可以省略不写。在 Kotlin 中重写的方法是要加
override
关键字的,而 Java 是以注解@Override
来修饰的;在 Kotlin 中方法都是用
fun
关键字来声明的;在 Kotlin 中方法的参数是参数名在前,参数类型在后,中间以
:
隔开;若参数可能为空,则在参数类型后加?
来表示。即上面代码中的(savedInstanceState: Bundle?)
;和参数表示类似,返回值也是以
: 返回类型
的方式表示的。比如上面的 Kotlin 代码可写为1
2
3override fun onCreate(savedInstanceState: Bundle?): Unit {
...
}Kotlin 中的
Unit
类型即 Java 中的 void 类型,可以省略不写。
举个例子:
方法名 multiplication
,参数 int a
和 int b
,返回 a
和 b
相乘的值:
1 | fun multiplication(a: Int, b: Int): Int { |
有人也许会有疑问,这和 Java 代码行数也差不多嘛。
当然还有更加简单的写法,函数体可以是表达式,并可从中推断出返回值类型。返回类型就可以省略不写了:
1 | fun multiplication(a: Int, b: Int) = a * b |
附加题
定义变量
只读变量 val
1 | val i: Int = 1 |
Kotlin 中的 val
关键字就类似于 Java 中的 final
。
可变变量 var
1 | var i: Int = 1 |
字符串模板
字符串可以包含模板表达式,即可求值的代码片段,并将其结果连接到字符串中。一个模板表达式由一个 $ 开始并包含另一个简单的名称。
举个例子:
1 | fun main(args: Array<String>) { |
运行结果:Hello, World!
基本类型
Kotlin 基本类型包括了数值、字符、布尔、字符串和数组。
1 | // int 类型 |
流程控制
if 表达式
除了 Java 中 if 使用方法外,在 Kotlin 中还支持如下的写法:1
2
3
4
5
6
7
8
9
10
11
12fun main(args: Array<String>) {
val a = 101
val b: Boolean = if(a > 100){
print("a > 100 ")
true
}else{
print("a <= 100 ")
false
}
println(b)
val c: Boolean = if(a > 0) true else false
}运行结果:a > 100 true
1
2
3
4
5fun main(args: Array<String>) {
println(testIf(100))
}
fun testIf(a: Int) = if(a > 100) true else false运行结果:false
when 表达式
Kotlin 中的 when 表达式就是 Java 中的 switch 表达式,具体例子如下:1
2
3
4
5when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> print("x is neither 1 nor 2")
}for 循环
1
2
3
4val collection: IntArray = intArrayOf(1, 2, 3)
for (item in collection) {
print(item)
}while 循环
while 循环与 Java 中的无异。