1.下面是AndroidStudio的配置 java
1.1 在Project對應的build.gradle文件中添加以下代碼:android
ext.kotlin_version = '1.1.2-4' //kotlin版本號編程
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 數組
1.2 在module對應的build.gradle文件 中添加代碼::app
添加插件 apply plugin: 'kotlin-android' 編程語言
添加依賴庫 compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"ide
從新build project就能夠使用kotlin了。函數
2.下面說下kotlin的基本語法(借鑑了Kotlin的官網文檔)工具
基本類型Basic Types學習
2.1 Number類型
定義變量
val a: Int = 10000
val boxedA: Int? = a
val b: Byte = 1
每一個Number類型的變量支持以下方法進行轉換
如:val i: Int = b.toInt()
2.2 Operations
如 val x = (1 shl 2) and 0x000FF000
2.3 Characters
字符型 定義如:val c: Char = 'C'
2.4 Booleans
布爾類型 定義如:val b: Boolean = false;
2.5 Arrays
數組類型 定義如:val x: IntArray = intArrayOf(1, 2, 3)
2.6 Strings
字符串類型 定義如:val s = "Hello, world"
3.基本語法
3.1 if語句
3.2 when語句(替代了java裏的switch)
3.3 for循環語句
循環遍歷集合collection裏面的數據 並輸出
3.4 while 和 do...while語句和java相似
4. 方法的定義
格式如:fun 方法名(參數名 :參數類型):返回值類型{
}
好比:
咱們還能夠給參數設置默認值 如:
fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size()) { ... }
5. 類的定義
格式如:class 類名{
}
在Kotlin中,一個類有一個primary constructor,一個或多個secondary constructors。primary constructor 屬於類頭部分,它在類名以後。
若是primary constructor沒有任何註解或者指示符,constructor關鍵字能夠被省略。
相反,若是primary constructory有註解或者可見的指示符,constructor是必須的。
primary constructor不能包含任何的代碼,初始代碼能夠放在初始塊中,初始化代碼塊以init關鍵字開頭。
須要注意的是,在主構造函數裏,能夠直接用這些參數變量賦值給類的屬性,或者用構造代碼塊來實現初始化。
Secondary Constructors
除了primary constructory,還有secondary constructors,一樣也是constructor開頭,位於類體中。
值得說明的是,若是primary constructory和secondary constructors同時存在,每一個secondary constructor須要委託到primary constructor中去,或者間接經過另外一個secondary constructors來委託。使用方法就是使用 this,表示委託到本類的另外一個構造函數中。
若是非抽象的類沒有聲明任何的構造函數,它默認繼承一個沒有任何參數的公有構造器,這個跟Java中的默認構造器相似。若是但願它繼承的是一個私有的構造器,就須要顯示的指明。
建立類的對象實例咱們能夠這麼實現
val invoice = Invoice()
val customer = Customer("帥氣的碼農")
6. 類的繼承
用「:」冒號實現類的繼承
定義一個父類 Person
open class Person(age: Int) //open關鍵字跟Java中的final是相反
子類繼承
class Child(age: Int) : Person(age)
若是父類沒有primary constructor,子類的每一個secondary constructor在右邊使用super來對它進行初始化。
class Child : Person {
constructor(ctx: Context) : super(ctx) { }
constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs) { }
}
7. 方法重寫
重寫成員函數
對於能夠重寫的函數,都須要顯示的指明,使用的是open關鍵字。若是沒有,在子類中聲明跟父類相同的方法是非法的。
open class Person {
open fun v() {}
fun v() {}
}
class Child() : Base() {
override fun v() {}
}
在子類中被標記爲override的成員函數自己也是能夠被從新的,也就是open的,若是但願它禁止被重寫,須要使用final關鍵字。
重寫規則
若是一個類繼承自多個類,而且它的這些父類都有同一個能夠重寫的函數,那麼這個類必須重寫這個函數而且提供它本身的實現,另外在子類中指示父類的方法是super<A>
,A爲父類類名,這樣就能夠指示不一樣的父類 了。
8. 抽象類
抽象類
跟Java同樣,使用abstract關鍵字。
9. Companion Objects
Kotlin 移除了 static 的概念。一般用 companion object 來實現相似功能。
咱們在 Activity 定義一個靜態類型的 string,名叫TAG,和一個啓動 Activity 的靜態方法:
咱們用kotlin能夠這麼寫:
好了 今天先介紹這麼多 kotlin還有不少關鍵字和語法操做符沒有介紹到,後續更新!!!