Kotlin系統入門與進階

###第一章:課程介紹

1.什麼是kotlin

	kotlin就是一門可以運行在Java虛擬機、Android、瀏覽器上的靜態語言.它與Java100%兼容

2.Hello World

fun main(args: Array<String>) {
    println("Hello World!");
}

###第二章:數據類型

1.Boolean類型

定義方式:
	val aBoolean: Boolean = true

2.Number類型

分類 類型 位寬
浮點型 Double 64位
Float 32位
整形 Long 64位
Int 32位
Short 16位
字節 Byte 8位
注意點:
	1.定義方法:
		val aInt: Int = 8
	2.默認的整形是Int型,若要定義爲Long,則要加上後綴L
		val aLong:Long = 123L
	3.默認的浮點型是Double型,若要定義爲Float,則要加上後綴F
		val aFloat: Float = 3.0F

####3.Char類型

定義 : 佔用兩個字節,標識一個16位的Unicode字符
######注意點:
1.單引號表示字符,雙引號表示字符串
2.不允許隱形轉換

  1. == 等價於Java的equals; === 等價於Java的 ==
    4.字符串拼接
    val arg2:Int = 1
    println("$arg1 + $arg2 = ${arg1 + arg2}") ```
5.支持使用 """ 定義實時字符串
```   val rawString:String = """
       \\\1-<_dko \n
dsd dsd
\\\\
    """

####4.類和對象
1.所有的類都繼承自Any
####5.空類型和智能類型轉換
1.Kotlin的類型是安全的
2.若想要定義爲可null的類型,則應該在類型後面加上?,e.g:String?
3.可以使用?:運算符,若返回null,則運行後面得表達式
4.使用!!.可以讓編譯器不校驗類型安全
5.使用is可以判斷某個實例是否爲某個類
6,使用as可以將類型強制轉爲爲某個類型
這裏寫圖片描述

這裏寫圖片描述

####6.包
1,可以將引入的類重新起個別名
e.g: import cn.soul.kotlin,Person as People
2.要求:
包就是命名空間
包的聲明必須放在非註釋代碼的第一行
####7.區間

val aRange:IntRange = 0…1024 //[0,1024]
val bRange:IntRange = 0 unit 1024 //[0,1024)
可以用in判斷某個數在區間內
####8.數組

###第三章:數據類型
####1.val和var
val是常量,var是變量
想要定義編譯期常量必須在val前加上const關鍵字
####2.函數
1.定義:fun test(){…}
默認的返回值是Unit,類似於Java的void
2.定義有返回值的函數
fun test(arg1:Int):Int{…}
####3.Lambda表達式
1.it,forEach要是隻有一個參數,默認爲it
####4.Lambda表達式
1.lateinit:延遲初始化,僅可用於var
2.lazy:延遲初始化val修飾的變量
####5.運算符
1.使用operator關鍵字修飾,且方法名要和運算符的定義一直,如plus
2.若想要自定義運算符,則需要在fun定義前添加infix關鍵,中綴表達式
####6.分支表達式
1.if的表達式是有返回值的,返回值就是該分支語句最後返回的值
2.kotlin沒有switch語句,使用when代替,when的默認分支用else關鍵字
3.when是加強版的switch,支持任意類型
####7.循環語句(非表達)
1.基本使用
for (arg in args) { ... }
2.變長參數,使用varage 修飾 : vararg ints: Int
3.參數的調用可以使用具名參數
###第四章:面向對象
####1.接口和抽象類
1.接口是協議,抽象類是半成品
2.都不能直接實例化
####2.繼承
1.父類需要open纔可被繼承;父類方法/屬性需要加上open關鍵字才能被重寫
2.父類的重寫需要加上override關鍵字,不可省略
3.接口和接口方法.抽象類默認爲open
4.by關鍵字,代理
使用方法一:在類的實現上添加上by 成員變量
e.g class Manager(val driver:Driver):Driver by driver{…}
5.類的成員默認是public
####3.object
1.單例模式的class
####4.伴生對象與靜態成員
1.每個類可以對應一個伴生對象
2.伴生對象的成員全局獨一份
3.伴生對象的成員類似於Java 的靜態成員
4.靜態成員考慮用包級函數.變量代替
5.@JvmField和@JvmStatic可以讓java直接類似於靜態方法.屬性的方式調用,否則得使用Companion對象索引
####5.方法重載和默認參數
1.方法的重載值關注函數名和參數列表,與返回值沒有關係
2.默認參數:爲函數參數設定一個默認值,可以爲任意位置的參數設置默認值
3.@JvmOverloads,可以讓java代碼調用時識別默認參數
####6.擴展成員
1.直接在要擴展的類後面加上.
e.g.fun String.multiple(){…}
在方法內可以使用this索引當前的對象
2.還可以擴展運算符使用operator修飾
####7.屬性代理
這裏寫圖片描述

###第五章:高階函數
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章