Android之Kotlin簡單入門學習

爲什麼要學Kotlin

1: android開發跟着google的步伐走
Google在2017年的I/O大會上已經宣佈kotlin正式成爲Android的一級開發語言
2: 別人都在使用
Google發佈申明,目前已經有35%的Android專業開發人員使用kotlin(爆發式增長)
3: 以防萬一
Java以後要開始收費了,可能導致一部分公司放棄Java
4: 有需求
當前已經有許多公司的招聘要求中,要求開發人員需要會kotlin
5: 簡單
學習kotlin一般一週時間就足以完成,且kotlin與Java可以相互調用,覺得kotlin解決不了的地方,仍然可以使用Java編寫(非常人性化)


怎麼使用Kotlin

保留不重複造輪子的精髓,這裏不直接介紹使用步驟,分享幾個比較好用的教程地址和記錄剛開始比較容易忘記的知識點,或者關鍵字就ok,本身就是爲了做筆記,方便是第一位

1): Kotlin基本環境搭建,語法學習

菜鳥教程: 這個對於新手,我覺得比較易懂,也比較詳細

學習Kotlin,看這一篇就夠了: 這個相對比較簡潔,看個人接受能力,可以先看菜鳥教程,再看這個

kotlin之內部類,匿名內部類與伴生對象

2): Kotlin語法之個人總結

當看完基本語法使用之後,會有些記不住,畢竟和java還是有一些不同,這裏記錄一些常用的,以便忘記時快速找到
注意:最起碼要了解一遍基本語法後再看

新關鍵字

 fun								//函數定義使用 如:fun sum(a: Int, b: Int): Int {...}
 vararg								//函數的變長參數(類似於java裏面參數後面帶...) 如:fun vars(vararg v:Int){...}
 var 								//可變變量定義(可以代替任意類型) 如: var x = 5
 val 								//不可變變量定義(只能賦值一次的變量(類似Java中final修飾的變量)) 如: val b = 1
 is									//運算符檢測一個表達式是否某類型的一個實例(類似於Java中的instanceof關鍵字) 如: if (obj is String) {...}
-------------區間↓------------
 in 								//區間 如:for (i in 1..4) print(i)
 step								//步長 如:for (i in 1..4 step 2) print(i)
 ..									//從小到大 如:1..4
 downTo								//從大到小 如:for (i in 4 downTo 1 step 2) print(i)
 until								//排除 如:for (i in 1 until 4) {...}
 ------------區間↑-----------
 when								//類似其他語言的 switch 操作符
 field								//後端變量
 lateinit 							//非空屬性必須在定義的時候初始化,kotlin提供了一種可以延遲初始化的方案 如: lateinit var subject: TestSubject
 init 								//主構造器中不能包含任何代碼,初始化代碼可以放在初始化代碼段中,如: init {...}
 constructor						//類也可以有二級構造函數,需要加前綴 如: constructor (name: String, alexa: Int) : this(name) {...}
 inner								//內部類使用 inner 關鍵字來表示。如 inner class Inner {...}
 Unit								//是一個特殊的返回值,相當於void,意思就是此函數沒有返回值
   Any								//所有類的超類(類似與object)

新符號功能

$									//這個符號代表在字符串中加代碼塊 如:"我叫$name" 或者 "我叫${getName()}"
?									//NULL檢查機制
!!									//
:									//指定參數類型,指定繼承關係
===									//值相等,對象地址才爲true
@									//標籤(例如:abc@、fooBar@、break@loop)

位操作符

shl(bits) – 左移位 (Java’s <<)
shr(bits) – 右移位 (Java’s >>)
ushr(bits) – 無符號右移位 (Java’s >>>)
and(bits) – 與
or(bits) – 或
xor(bits) – 異或
inv() – 反向

java的靜態在kotlin的形態

class Test {
		//所有裏面的方法和屬性都是類似java的靜態
		companion object {
			public fun get(
			)
		}
 }

Test.get()   	//調用

3): Kotlin語法真正運用到Android開發

自己動手
如果對Kotlin有了大概的瞭解,基本上就可以開始開發了,只是前期開發慢點,不要想着記得非常熟悉再用,只有真正的使用纔會發現問題和深刻記憶!
看別人的簡單demo

4):簡單的demo例子

package com.example.myapplication

import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

/**
 * 包含的java對應kotlin寫法
 *
 *  1:  btn1 , btn2都是activity_main.xml裏面定義的id,在kotlin裏面可以直接使用
 *  2:  在java裏面的匿名內部類
 *  3:  MainActivity.this
 *  4:  MainActivity.class
 */
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btn1.setOnClickListener { view ->
            startActivity(Intent(this, MainActivity::class.java))
        }
        btn2.setOnClickListener(object : View.OnClickListener {
            override fun onClick(p0: View?) {
                startActivity(Intent(this@MainActivity, MainActivity::class.java))
            }
        })
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章