Kotlin基本語法和使用

     

  • Kotlin 是一個基於 JVM 的新的編程語言,由 JetBrains 開發。與Java相比,Kotlin的語法更簡潔、更具表達性,並且提供了更多的特性。
  • Kotlin是使用Java開發者的思惟被建立的,Intellij做爲它主要的開發IDE。對於 Android開發者,有兩個有趣的特色:
  • 對Java開發者來講,Kotlin是很是直覺化的,而且很是容易學習。語言的大部 份內容都是與咱們知道的很是類似,因此能迅速地掌 握它。
  • AndroidStudio做爲目前最流行的Android開發工具,可以很是完美地理解、編譯運行Kotlin代碼。AndroidStudio 3.0以後已經完美支持kotlin

      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? =

    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還有不少關鍵字和語法操做符沒有介紹到,後續更新!!!

相關文章
相關標籤/搜索