本課程開發環境:
- Intellij IDEA 2023.1.2
- Kotlin 1.8.x
- Java JDK 17.0.x (Eclipse Temurin - AdoptOpenJDK)
HKT 講師,線上教學相關課程
HKT 講師,相關課程:
🎬 Jetpack Compose 教學講義
https://bit.ly/3JF4SFA
🎬 Swift 教學講義
https://bit.ly/3ekjsEP
🎬 Android 入門開發實戰:口罩地圖(Kotlin) 教學講義
https://bit.ly/2KKZcju
🎬 Dart 教學講義
https://bit.ly/2OJW6hl
🎬 Flutter 教學講義
https://bit.ly/37L47Ij
🎬 Java 教學講義
https://bit.ly/2WlCn6y
🎬 kotlin 教學講義
https://bit.ly/2Kx7GrM
從零開始學 Kotlin 程式設計
Kotlin 程式語言基礎入門課程,寫給新手的開發筆記,學習 Kotlin 最佳指南。這是一個非常好的學習資源,它可以幫助初學者更快地學習 Kotlin 程式語言。
課程說明
Kotlin 又被稱之為 Android 界的 Swift,Google I/O 2017 年,正式宣布 Kotlin 成為 Android 官方開發語言。Android Studio 3 官方正式直接支援 Kotlin 語法,可以使用 Kotlin 來開發 Android 行動應用程式。 Google I/O 2019 年,再次對外宣布 Kotlin 已成為 Android 第一首選開發語言 (First Language)。kotlin 的重要性今非昔比,你還在用 Java 開發 Android 應用程式嗎?
這門課程完全適合初學者,無須任何撰寫過程式碼經驗,我們將從零基礎開始介紹,撰寫程式語言需具備的基礎知識。我們將從安裝 Kotlin 開發環境,然後學習寫第一行 Kotlin 程式。接下來介紹 Kotlin 基礎語法、邏輯判斷條件控制並討論循環控制等 Kotlin 程式語法基本與進階使用知識,完全從零開始,初學者無痛上手。
如果你已經是一名 Android (Java) 開發者,你可以透過這門課程來了解超棒 Kotlin 程式語言。讓你可以編寫更乾淨、更強大的應用程式。
Google 開發者年會,重要歷史的一刻
- Google I/O 2017 年,正式宣布 Kotlin 成為 Android 官方開發語言。
- Google I/O 2019 年,宣布開發 Android App 首選語言為 Kotlin 程式語言。
網路自學 Kotlin 最常見的三大痛
- 學習資訊東拼西湊,無法有系統很完整性的學習
- 英文資料看得霧煞煞,一頭霧水
- 觀念混淆,挫折感超重
課程特色
- 由淺入深,無痛學習 Kotlin 的程式開發技巧
- 一次掌握 Kotlin 最常用的核心關鍵知識
- 繁體中文教材,系統化的課綱編排,HKT (侯光燦) 講師影片教學
課程目錄
Kotlin 開發環境 (Get started with Kotlin)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 安裝 Kotlin 開發軟體 | 連結 | 連結 |
2 | IntelliJ IDEA 開發環境介紹 | 連結 | 連結 |
3 | 第一行程式碼 Hello World | 連結 | 連結 |
Kotlin 基礎語法 (Basic syntax)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 常數與變數 (Variables) | 連結 | 連結 |
2 | 單行、多行註解程式 (Comments) | 連結 | 連結 |
3 | 常用快捷鍵(Shortcut Keys) | 連結 | 連結 |
Kotlin 基本資料型態 (Basic types)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 基本資料型態:整數、浮點數 (Numbers) | 連結 | 連結 |
2 | 基本資料型態:布林值 (Booleans) | 連結 | 連結 |
3 | 基本資料型態:字串 (Strings) | 連結 | 連結 |
4 | 資料類型轉換 (Type Conversion) | 連結 | 連結 |
Kotlin 條件控制 (Conditions)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | if 條件控制 (If expression) | 連結 | 連結 |
2 | when 條件控制 (when expression) | 連結 | 連結 |
Kotlin 集合資料與循環控制 (Collections & Loops)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | List 集合 | 連結 | 連結 |
2 | Map 集合 | 連結 | 連結 |
3 | Set 集合 | 連結 | 連結 |
4 | for 迴圈,循環控制 (For loops) | 連結 | 連結 |
5 | while 迴圈,循環控制 (while loops) | 連結 | 連結 |
6 | 跳轉語句: break、continur、return | 連結 | 連結 |
7 | 範圍循環操作:Range | 連結 | 連結 |
Kotlin 運算符號 (Operators)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 指派運算符號 (assignment operator) | 連結 | 連結 |
2 | 數學運算符號 (mathematical operators) | 連結 | 連結 |
3 | 複合指派運算符號 (augmented assignment operators) | 連結 | 連結 |
4 | 比較運算符號 (comparison operators) | 連結 | 連結 |
5 | 邏輯運算符號 (logical operators) | 連結 | 連結 |
Kotlin 函數定義 (Function)
Kotlin 匿名函數 (Anonymous function & Lambda expression)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 複習標準函數式與單行表達式 | 連結 | 連結 |
2 | 匿名函數-無參數範例 | 連結 | 連結 |
3 | 匿名函數-單一參數範例 | 連結 | 連結 |
4 | 匿名函數-單一參數使用 it 取代範例 | 連結 | 連結 |
5 | 匿名函數-多個參數範例 | 連結 | 連結 |
6 | 匿名函數-輸入名稱定義資料類型可省略 | 連結 | 連結 |
7 | 匿名函數-函數當參數傳遞 | 連結 | 連結 |
8 | 匿名函數-Trailing lambda | 連結 | 連結 |
9 | Inline 內聯函數 | 連結 | 連結 |
kotlin Null 安全 (Null safety)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 資料不可為空 | 連結 | 連結 |
2 | 資料可為空 | 連結 | 連結 |
3 | 存取可為空的變數,方式一: 使用 null check | 連結 | 連結 |
4 | 存取可為空的變數,方式二: 使用 「let」 | 連結 | 連結 |
5 | 存取可為空的變數,方式三: 使用 safe call 「?.」 | 連結 | 連結 |
6 | 存取可為空的變數,方式四: 使用「!!」 | 連結 | 連結 |
kotlin 例外處理 (Exception)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | throw 拋出例外 | 連結 | 連結 |
2 | 例外處理 (try…catch/finally) | 連結 | 連結 |
3 | 自定義異常處理 | 連結 | 連結 |
4 | kotlin 預先條件函數 (Precondition functions) | 連結 | 連結 |
Kotlin 類別 (Class)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 類別的定義 (Class) | 連結 | 連結 |
2 | 存取類別的屬性 (Properties and Fields) | 連結 | 連結 |
3 | 修改 getter 與 setter 方法 (Getters and setters) | 連結 | 連結 |
4 | 類別初始化 (Constructors) | 連結 | 連結 |
Kotlin 繼承 (Inheritance)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 繼承 (Inheritance) | 連結 | 連結 |
2 | Any 類別 (Any) | 連結 | 連結 |
3 | 可見性修飾關鍵字 (Visibility modifiers) | 連結 | 連結 |
Kotlin 物件 (Object)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | class 實體化範例 | 連結 | 連結 |
2 | object 實體化單例模式(Singleton)範例 | 連結 | 連結 |
3 | Object 宣告式 (Declaration) | 連結 | 連結 |
4 | Object 表達式 (Expressions) | 連結 | 連結 |
5 | Companion Object | 連結 | 連結 |
Kotlin 介面與抽象類別 (Interface & abstract)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 介面 (Interfaces) | 連結 | 連結 |
2 | 抽象類別 (abstract) | 連結 | 連結 |
Kotlin 擴展與泛型 (Extensions & Generics)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 擴展 (Extensions) | 連結 | 連結 |
2 | 泛型 (Generics) | 連結 | 連結 |
Kotlin 資料、列舉與密封類別 (Data、Enum & sealed class)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 資料類別 (Data class) | 連結 | 連結 |
2 | 列舉類別 (Enum class) | 連結 | 連結 |
3 | 密封類別 (sealed class) | 連結 | 連結 |
Kotlin 委托 (Delegate)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 委托類別 (Delegate) | 連結 | 連結 |
2 | 委托屬性 (Delegated properties) | 連結 | 連結 |
3 | 延遲屬性 (Lazy properties) | 連結 | 連結 |
4 | 可觀察屬性 (Observable properties) | 連結 | 連結 |
5 | 委托一個 Map 儲存多個屬性 (Storing properties in a map) | 連結 | 連結 |
kotlin 標準函式庫 (Standard library - Scope function)
Kotlin 和 Java 混合使用 (Kotlin and Java interoperability)
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 如何在 IntelliJ IDEA 建立 Kotlin 專案中執行 Java 程式 | 連結 | 連結 |
2 | Null 空值例外發生 (Null Exception) | 連結 | 連結 |
3 | 資料類型映射 (Type Mapping) | 連結 | 連結 |
4 | 屬性訪問 (Property Access ) | 連結 | 連結 |
No. | 課程名稱 | 教學影片 | 教學講義 |
---|
1 | 註解 @JvmName | 連結 | 連結 |
2 | 註解 @JvmField | 連結 | 連結 |
4 | 註解 @JvmStatic & Companion Object | 連結 | 連結 |
5 | 註解 @JvmOverLoads | 連結 | 連結 |
6 | 註解 @Throws | 連結 | 連結 |
7 | Function Types | 連結 | 連結 |
Kotlin 協程與非同步資料流處理 (Coroutines & Flow)
此章節會再另外開一門課程,詳細完整介紹,如何在 Android 中使用 Coroutine 和 Flow 的實戰應用教學。敬請期待…
參考資料 (reference)
註釋:[TBC] 為 To Be Continued 縮寫,意指文章未完待續、尚在施工中,敬請期待。
著作聲明
「從零開始學 Kotlin 程式設計」中提供所有的圖文、程式碼與影片教學,以下簡稱「本資料」。「本資料」,允許使用者重製、散布、傳輸以及修改著作,但不得從事任何商業目的之使用。使用時必須清楚註明出處與連結:「作者:HKT線上教室,侯光燦」,未經註明不得任意轉載。
商標內容聲明
「本資料」,其中所引用之各商標及產品名稱分屬其合法公司所有,「本資料」,部分採用開放源始碼、圖文與影音等多媒體,引用自於網路,皆屬於其原作者之所有,「本資料」引用純屬介紹之用,並無任何侵權之意,特此聲明,其中內容若有不妥,或是侵犯了您的合法權益,請麻煩通知我們,我們將會迅速協助將侵權的部分移除,謝謝!
*有任何問題,麻煩聯繫,謝謝。
活動演講、贊助、公益等相關工商合作,歡迎來信邀約:
thishkt@gmail.com