Kotlin的每一行代碼是不加分號的
變量
- val(value的簡寫)用來聲明一個不可變量
- var(variable的簡寫)用來聲明一個可變的變量
函數
語法糖
當一個函數中只有一行代碼時候,Kotlin允許我們不必編寫函數體,可以直接將唯一的一行代碼寫在函數定義的尾部,中間等號連接即可。
fun largerNumeber(num1:Int,num2:Int):Int = max(num1,num2)
fun largerNumeber(num1:Int,num2:Int):Int = if(num1 >num2) num1 else num2
when
- when類似java中的switch。when語句允許傳入一個任意類型的參數,然后可以在when的結構體中定義一系列的條件。格式是:
匹配值 -> {執行邏輯}
。,當執行邏輯只有一行代碼時候,{ }
可以省略。 - when語句還可以類型匹配。
is
是關鍵字。
fun checkNumber(num:Number){
when(num) {
is Int -> println("num is Int")
is Double -> println("num is Double")
else -> println("num not support")
}
}
- when可以傳參可以不傳參。不傳參的寫法
fun getScore(name:String) = when {
name == "Tom" -> 96
name == "Jim" -> 100
}
循環語句
區間:
-
..
創建兩端閉區間,0..10代表[0,10] -
until
左閉右開區間,0 until 10 代表[0,10) -
downTo
降序閉區間
面向對象編程
繼承
kotlin中類默認是不可繼承的。open
修飾的類才可以被繼承。
open class Person{
//省略
}
class student:Person(){
//省略
}
Kotlin構造函數:主構造函數和次構造函數
()
意思是去調用父類的構造函數
接口
接口和java中是一樣的。
修飾符
修飾符 | Java | Kotlin |
---|---|---|
public | 所有類可見 | 所有類可見(默認) |
private | 當前類可見 | 當前類可見 |
protected | 當前類、子類、同一包路徑下的類可見 | 當前類、子類可見 |
default | 同一包路徑下的類可見(默認) | 無 |
internal | 無 | 同一模塊的類可見 |
數據類
data class CellPhone (val brand:String,val price:Double)
在類class前加一個data
關鍵字,就表明了這是一個數據類,Kotlin會根據主構造函數中的參數幫你將equals()
、hasCode()
、toString()
等固定且無實際邏輯意義的方法自動生成。
單例類
object Singleton{
fun test(){
println("test is called")
}
}
Kotlin中,只需要將class
改為object
關鍵字,就定義了一個單例模式