首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Kotlin 語法入門:變數宣告、擴充函數與 Parcelable 序列化完整指南

     編輯:Java 相關知識

前言

2017 年 Google I/O 大會上,Google 正式宣布 Kotlin 成為 Android 開發的官方一級語言。身為 Android 開發者,掌握 Kotlin 語法已成必修課。本文將從環境建置、變數定義、擴充函數、Parcelable 序列化、伴生物件、工具類撰寫以及 Activity 導航等核心概念,帶你快速上手 Kotlin 開發。

一、開發環境建置

Android Studio 3.0 以上版本

建立新專案時,直接勾選 Include Kotlin support 選項即可自動完成配置。

Android Studio 3.0 之前版本

需手動安裝 Kotlin 外掛並配置 Gradle:

// app/build.gradle
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

// project/build.gradle
ext.kotlin_version = '1.1.2-3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

二、變數定義:val 與 var

Kotlin 提供兩種變數宣告關鍵字:

  • val:唯讀變數,對應 Java 的 final,編譯期決定值,運行期不可變更。
  • var:可變變數,值可在運行期重新賦值。

Kotlin 支援類型推斷,宣告時可省略類型。所有變數預設為非空,若需允許 null,必須在類型後加上 ?(如 String?)。建議盡量設計為非空類型,減少空指針風險。

三、擴充函數

語法:fun 類型.函數名(參數) { ... }。範例:為 Context 新增 toast 方法。

fun Context.toast(message: String, length: Int = Toast.LENGTH_SHORT) {
    Toast.makeText(this, message, length).show()
}

呼叫方式:context.toast("Hello"),無需繼承或修改原類別。

四、Parcelable 序列化實作

Kotlin 的 data class 搭配 Parcelable 可大幅簡化樣板碼:

data class UserBean(var name: String, var id: String) : Parcelable {
    constructor(source: Parcel) : this(source.readString(), source.readString())

    override fun describeContents() = 0

    override fun writeToParcel(dest: Parcel, flags: Int) {
        dest.writeString(name)
        dest.writeString(id)
    }

    companion object {
        @JvmField
        val CREATOR: Parcelable.Creator<UserBean> = object : Parcelable.Creator<UserBean> {
            override fun createFromParcel(source: Parcel) = UserBean(source)
            override fun newArray(size: Int) = arrayOfNulls<UserBean>(size)
        }
    }
}

五、伴生物件與 @JvmField 解析

companion object

Kotlin 無 static 關鍵字。若需類別層級的函數或屬性,可在類別內宣告 companion object。其成員可直接透過類別名稱呼叫,相當於 Java 的 static 成員。

@JvmField

指示編譯器不產生 getter/setter,直接將屬性編譯為 Java 欄位,方便 Java 程式碼直接存取。

六、工具類撰寫:object 宣告

Kotlin 使用 object 關鍵字定義單例,替代 Java 的靜態工具類:

object ToastUtils {
    fun toast(context: Context, message: String) {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
    }
}

呼叫:ToastUtils.toast(context, "msg")。

七、Activity 導航與資料傳遞

採用伴生物件封裝啟動邏輯,呼叫端無需知悉 Intent 細節:

class SecondActivity : AppCompatActivity() {
    companion object {
        const val EXTRA_KEY_USER = "extra.user"
        fun navigateTo(context: Context, user: UserBean) {
            val intent = Intent(context, SecondActivity::class.java).apply {
                putExtra(EXTRA_KEY_USER, user)
            }
            context.startActivity(intent)
        }
    }
    // ... onCreate 取資料
}

MainActivity 呼叫:SecondActivity.navigateTo(this, user)。

小結

本文涵蓋 Kotlin 入門核心語法,包含變數、擴充函數、Parcelable、伴生物件、工具類與 Activity 導航。Kotlin 還有協程、密封類、擴充屬性等進階特性,待實戰中逐步深入。祝你 Kotlin 之旅順遂!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved