書+視頻學習+學習效果測試+開發闖關測試+項目實戰,貼心跟蹤讀者學習效果,學習Kotlin這一本就夠!
基於新的Kotlin版本
一本全程視頻陪伴,貼心跟蹤初學者學習效果的Kotlin開發書
贈送近70小時視頻課程,包括Kotlin和Android開發,供讀者學習使用
通過Kotlin開發題庫提供大量的測試題以及過關係統,讀者可以用通關的方式更有效地學習書中的知識,提高學習的效率
隨時互動答疑,有問題的學員可以通過歐瑞科技的問答社區(https://geekori.com)提問,會有專人迴答讀者提齣的問題,以及通過博客係統總結書中學到的知識,同時,提齣問題、迴答問題以及撰寫的博客越多,就會增加讀者的積分,以後學習李寜老師其他的課程和獲取其他資源,會有更大的優惠。
本書分3部分講解Kotlin,第1部分(第1~11章)是Kotlin語言的基礎部分,主要介紹瞭Kotlin的基礎知識、語法以及大量的“語法糖”,如搭建Kotlin開發環境、數據類型、控製流、類、對象、接口、擴展、委托、Lambda錶達式、操作符重載等。第2部分(第12~15章)主要介紹瞭如何用Kotlin開發Android App。由於Kotlin可以調用JDK中的API,所以在使用Kotlin開發Android App的過程中,很多都是調用JDK的API實現的,但開發語言使用的是Kotlin。因此,這一部分詳細介紹瞭用Kotlin開發Android App 需要掌握的核心知識,如Activity、組件、布局、流文件、SQLite數據庫、網絡等技術。第3部分(第16章)是一個完整的案例:歐瑞天氣。通過這個項目,可以讓讀者瞭解利用Kotlin開發Android App的全過程。
李寜,歐瑞科技創始人,極客起源IT問答社區(https://geekori.com)創始人,歐瑞學院金牌講師,計算機專業碩士。擁有近20年軟件開發經驗,10年企業內訓經驗。曾任國內某大型軟件公司項目經理。CSDN博客專傢、CSDN學院簽約講師、51CTO學院特級講師。長久以來一直從事JavaScript、Node.js、Java、Kotlin、Python、Android、iOS、C++、Hadoop、Spark、深度學習的開發和技術指導工作。對國內外相關領域的技術、理論和實踐有很深的理解和研究。目前已經齣版超過30本IT暢銷書,主要著作包括《Kotlin程序開發入門精要》《Android深度探索 捲1和捲2》《Android開發權wei指南 第1版和第2版》等。
第1章Kotlin開發環境搭建1
1.1Kotlin概述1
1.1.1Kotlin是什麼1
1.1.2為什麼Kotlin突然成為熱門2
1.1.3Kotlin相對於Java有哪些優勢2
1.1.4Kotlin能做什麼3
1.2在綫運行Kotlin代碼3
1.3安裝和配置Kotlin6
1.3.1安裝和配置JDK6
1.3.2Windows下安裝和
配置Kotlin9
1.3.3MacOSX下安裝和
配置Kotlin10
1.4測試Kotlin編譯和運行環境10
1.4.1命令行方式使用Kotlin11
1.4.2Kotlin的REPL環境13
1.4.3在命令行中運行腳本文件14
1.4.4在瀏覽器中運行Kotlin程序14
1.4.5使用Node.js運行Kotlin程序16
1.4.6在微信小程序中運行Kotlin
程序17
1.4.7用Kotlin開啓全棧開發模式21
1.5Kotlin中的語法糖22
1.6Kotlin的集成開發環境(IDE)24
1.6.1IntelliJIDEA的Kotlin基礎開發
環境25
1.6.2使用AndroidStudio和Kotlin開發
AndroidApp29
1.7小結34
第2章Kotlin基礎知識35
2.1Kotlin的基本語法35
2.1.1定義變量35
2.1.2定義函數36
2.1.3注釋37
2.2基礎數據類型37
2.2.1數值類型38
2.2.2字符類型39
2.2.3布爾類型41
2.2.4數組41
2.2.5字符串42
2.2.6字符串模闆43
2.3包(Package)43
2.4控製流46
2.4.1條件語句46
2.4.2when語句46
2.4.3for循環48
2.4.4while循環49
2.5小結50
第3章類和接口51
3.1類的聲明51
3.2構造器51
3.2.1主構造器51
3.2.2第二構造器53
3.2.3Kotlin中的Singleton模式54
3.2.4Kotlin函數中的默認參數55
3.2.5創建類的實例58
3.3類成員58
3.3.1屬性的基本用法58
3.3.2屬性的getter和setter形式60
3.3.3保存屬性值的字段60
3.3.4函數61
3.3.5嵌套類63
3.4修飾符(Modifiers)64
3.5類的繼承65
3.5.1Kotlin類如何繼承65
3.5.2重寫方法65
3.5.3重寫屬性66
3.6接口67
3.7抽象類68
3.8小結68
第4章枚舉類和擴展69
4.1枚舉類69
4.1.1枚舉類的基本用法69
4.1.2為枚舉值指定對應的數值70
4.1.3枚舉類的其他功能71
4.2擴展72
4.2.1擴展原生API72
4.2.2擴展自定義類73
4.2.3成員函數衝突的解決方案75
4.2.4擴展屬性76
4.2.5擴展伴隨對象
(CompanionObject)76
4.2.6擴展的範圍77
4.2.7在類中使用擴展77
4.2.8調用特定類的成員函數78
4.2.9擴展成員的繼承79
4.3小結80
第5章數據類和封閉類81
5.1數據類(DataClass)81
5.1.1使用數據類81
5.1.2對象復製84
5.1.3數據類成員的解構85
5.2封閉類(SealedClasses)86
5.3小結86
第6章泛型87
6.1泛型基礎87
6.2類型變異88
6.3類型投射90
6.4星號投射92
6.5泛型函數92
6.6泛型約束93
6.7小結93
第7章對象和委托94
7.1對象94
7.1.1對象錶達式94
7.1.2聲明匿名對象97
7.1.3訪問封閉作用域內的變量97
7.1.4陪伴對象99
7.2委托99
7.2.1類的委托99
7.2.2委托屬性100
7.2.3委托類的初始化函數102
7.2.4委托的前提條件104
7.3標準委托104
7.3.1惰性裝載105
7.3.2可觀察屬性105
7.3.3阻止屬性的賦值操作106
7.3.4Map委托107
7.3.5MutableMap委托108
7.4小結108
第8章高階函數與Lambda錶達式109
8.1高階函數109
8.2Lambda錶達式與匿名函數110
8.2.1函數類型111
8.2.2Lambda錶達式的語法111
8.2.3匿名函數112
8.2.4閉包(Closure)113
8.3小結113
第9章函數114
9.1函數基本用法114
9.2使用中綴標記法調用函數114
9.3單錶達式函數115
9.4函數參數和返迴值116
9.4.1可變參數116
9.4.2返迴值類型117
9.5函數的範圍117
9.5.1局部函數117
9.5.2成員函數118
9.6泛型函數118
9.7內聯函數119
9.7.1讓Lambda錶達式內聯進
函數119
9.7.2內聯部分Lambda錶達式121
9.7.3非局部返迴
(Non-localreturn)124
9.7.4實體化的類型參數
(Reifiedtypeparameter)125
9.7.5內聯屬性126
9.8小結127
第10章其他Kotlin技術(1)128
10.1數據解構128
10.2集閤130
10.3值範圍132
10.3.1值範圍的應用132
10.3.2值範圍的工作原理134
10.3.3常用工具函數135
10.4類型檢查與類型轉換136
10.4.1is與!is操作符136
10.4.2智能類型轉換138
10.4.3強行類型轉換139
10.5this錶達式140
10.6相等判斷140
10.7操作符重載141
10.7.1一元操作符重載141
10.7.2二元操作符142
10.7.3方括號操作符重載144
10.7.4賦值操作符重載146
10.7.5邏輯操作符重載147
10.8小結149
第11章其他Kotlin技術(2)150
11.1null值安全性150
11.1.1可為null的類型與不可為null
的類型150
11.1.2在條件語句中進行null檢查151
11.1.3安全調用操作符152
11.1.4Elvis操作符152
11.1.5!!操作符153
11.1.6安全的類型轉換153
11.1.7可為null的類型構成的集閤153
11.2異常類153
11.3注解(Annotations)155
11.3.1使用注解156
11.3.2注解類的構造器157
11.3.3Lambda錶達式158
11.4反射(Reflection)158
11.4.1類引用(ClassReference)159
11.4.2枚舉類成員159
11.4.3動態調用成員函數161
11.4.4動態調用成員屬性161
11.5小結163
第12章Android的窗口——Activity164
12.1什麼是Activity164
12.2Activity的基本用法164
12.2.1創建一個不包含任何Activity
的Android工程165
12.2.2手動創建Activity167
12.2.3創建和加載布局168
12.2.4在AndroidManifest文件中注冊
Activity172
12.2.5編譯和運行Android工程172
12.2.6為Activity添加新組件173
12.2.7為Activity添加邏輯代碼174
12.2.8為Activity添加Toast175
12.2.9關閉Activity178
12.3使用Intent連接多個Activity178
12.3.1使用顯式Intent179
12.3.2使用隱式Intent182
12.3.3為隱式Intent設置更多的過濾
條件185
12.3.4使用隱式Intent訪問
係統App187
12.4嚮Activity中傳遞數據189
12.5從Activity返迴數據191
12.6Activity的生命周期192
12.7記錄當前活動的Activity196
12.8小結197
第13章AndroidApp的裝飾工具——
UI組件與布局198
13.1如何編寫程序界麵198
13.2常用的UI組件198
13.2.1文本顯示組件
(TextView)198
13.2.2按鈕組件(Button)202
13.2.3文本編輯組件(EditText)206
13.2.4圖像組件(ImageView)210
13.2.5進度條組件(ProgressBar)213
13.2.6對話框組件(AlertDialog)216
13.3布局詳解217
13.3.1綫性布局(LinearLayout)217
13.3.2相對布局(RelativeLayout)222
13.3.3幀布局(FrameLayout)226
13.3.4百分比布局
(PercentFrameLayout)227
13.4小結230
第14章永久保存數據的方式——
持久化技術231
14.1SharedPreferences存儲231
14.1.1將數據存儲到SharedPreferences
中231
14.1.2從SharedPreferences讀取
數據234
14.1.3利用SharedPreferences存取用戶名
和密碼235
14.2文件流操作239
14.2.1openFileOutput和openFileInput
方法239
14.2.2讀寫SD卡上的文件242
14.3App權限的授予和拒絕248
14.4讀寫JSON格式的數據250
14.5SQLite數據庫257
14.5.1SQLite數據庫管理
工具257
14.5.2創建SQLite數據庫和
數據錶261
14.5.3嚮SQLite數據錶中插入
數據264
14.5.4刪除SQLite數據錶中的
數據265
14.5.5更新SQLite數據錶中的
數據266
14.5.6查詢SQLite錶中的數據267
14.5.7將數據庫與App一起
發布268
14.6小結270
第15章連接外部世界——網絡技術271
15.1WebView組件271
15.2使用HTTP與服務端進行交互273
15.2.1使用HttpURLConnection273
15.2.2使用OkHttp276
15.3小結282
第16章項目實戰——歐瑞天氣App283
16.1項目概述283
16.2添加依賴284
16.3實現主窗口285
16.4顯示地區列錶286
16.4.1描述城市信息的數據類286
16.4.2處理JSON格式的城市列錶
信息286
16.4.3天氣信息描述類288
16.4.4獲取城市信息的對象290
16.4.5在ListView組件中顯示地區
列錶293
16.5顯示天氣信息298
16.6小結303
Android到現在已經發展瞭10年瞭,從最初不怎麼完善發展到現在,形成瞭一個由成韆上萬的App支撐,可以運行在包括手機、平闆電腦、電視、汽車、手錶、無人機在內的幾乎所有智能設備中的完整生態係統,這一切足以讓Android的擁有者Google感到無比自豪。
不過有一件事一直讓Google“很不爽”,那就是開發AndroidApp的核心語言Java並不屬於Google,而屬於Oracle。而且Oracle一直在和Google打關於Java的“官司”,盡管Google贏得瞭“官司”,但也讓Google清楚地看到,如果編程語言不掌握在自己的手裏,那麼總會受製於人,所以Google在數年時間裏進行瞭多次嘗試,如推齣瞭Go語言。不過Go語言和C++類似,並不適閤開發AndroidApp。所以2017年5月之前,開發AndroidApp的主要編程語言仍然是Java。
然而在2017年5月的I/O大會上,Google突然宣布,Kotlin成為開發Android的一級編程語言,這就意味著,從這一刻開始,開發AndroidApp可以使用兩種語言:Java和Kotlin。
那麼Kotlin是什麼呢?就在2017年5月的I/O大會之前,我也不太清楚這個世界上還有一種叫Kotlin的編程語言,相信大多數讀者和我一樣,在此之前都不太瞭解什麼是Kotlin。其實與Kotlin類似的語言有很多,如Scala,它們都是基於JVM的語言,也就是說,Kotlin和Scala一樣,都隻提供瞭編譯器,沒有提供運行環境。運行Kotlin和Scala程序,需要將源代碼編譯成ByteCode,然後在JVM上運行。
在剛開始接觸Kotlin時,我感到很奇怪,現在基於JVM的語言非常多,例如,編寫瞭Spark的Scala語言,還有Groovy、JRuby、Clojure等,那麼Google為什麼單獨偏愛Kotlin呢?隨著我對Kotlin的深入接觸,逐漸對Google選擇Kotlin的決定錶示認可!
Kotlin作為第二種開發AndroidApp的核心編程語言,肯定是與Java有很大差異的,而且這種差異要彌補Java的不足或增強Java的功能。所以要求都是正嚮的差異。
Java盡管曆史悠久,應用眾多,但也有很多不足的地方,例如,我們經常會遇到NullPointerException異常,這是個很討厭的異常,産生異常的原因是因為訪問瞭空對象的成員。Kotlin巧妙地解決瞭這個問題,讓訪問空對象的成員不再拋齣異常,而是直接返迴NULL。Kotlin除瞭解決Java的遺留問題外,還加瞭很多“語法糖”,例如,Kotlin支持擴展和操作符重載,這是兩個非常大的“語法糖”。通過擴展,可以在沒有源代碼的情況下,為類添加方法和屬性,通過操作符重載,可以讓特定的類型支持原來沒有的操作,如為字符串類型添加乘法和除法。總之,Kotlin單憑語言本身就比Java酷瞭不少。不過這些理由並不足以讓Google對Kotlin如此偏愛,因為其他同類語言,如Scala,也同樣添加瞭很多“語法糖”。
那麼Kotlin還有什麼其他特性呢?其實Kotlin不僅可以在JVM上運行,還可以直接將Kotlin源代碼轉換為JavaScript。這樣一來,從理論上講,Kotlin可以在任何支持JavaScript的環境中運行,如Web應用、ReactNative(Android和iOS)、微信公眾號、微信小程序、Node.js、Chrome插件等。另外,還有一些地方是JavaScript做不到的,如開發本地應用。但Kotlin可以做到,Kotlin不僅僅可以生成JavaScript代碼,還可以直接編譯成本地代碼,如Windows的exe文件、iOSApp等,這樣一來,Kotlin幾乎可以開發所有類型的應用瞭。所以從理論上來講,Kotlin纔是真正的跨平颱語言,Kotlin可以直接或間接地開發各種類型的應用。
說瞭這麼多,相信大傢一定已經清楚瞭Kotlin的強大,以及Google為什麼選擇瞭Kotlin的原因,當然,除瞭技術原因外,選擇Kotlin還有一個原因,就是Google的AndroidStudio是基於IntelliJIDEA的社區版本開發的,而JetBrains公司開發瞭IntelliJIDEA和Kotlin。所以,可以說AndroidStudio和Kotlin是師齣同門,這樣它們之間更容易兼容。
既然Kotlin這麼強大,而且選擇Kotlin的理由非常多,如開發效率高、語法優美、能跨平颱開發、得到Google的強力支持。那麼我們還等什麼呢!趕緊通過本書將Kotlin的知識裝進我們的大腦纔是正確的做法!
本書適閤Kotlin愛好者學習、程序員閱讀,也可以作為大專院校和培訓學校的教材。
作者
這本書的封麵設計很吸引人,那種沉靜而有力的藍色背景,搭配上簡潔明瞭的書名,讓人一眼就能感受到它是一本專業且有深度的技術書籍。我當初選擇它,很大程度上是被它“入門精要”這幾個字所吸引,我一直覺得學習一門新的編程語言,最怕的就是一開始就陷入概念的海洋,被晦澀的術語和復雜的理論嚇退。所以,我特彆期待這本書能夠以一種非常直觀、易懂的方式,把我引入Kotlin的世界。我希望它能從最基礎的語法開始,比如變量的聲明、基本的數據類型,還有函數的使用等等,能夠給我一個清晰的框架。更重要的是,我希望它能通過大量的代碼示例,讓我能夠邊學邊練,而不是僅僅停留在理論層麵。比如,當講到條件語句和循環時,我希望書中能給齣一些實際應用場景的例子,例如如何用循環來處理一個列錶,或者如何用條件語句來根據用戶的輸入做齣不同的響應。這樣,我不僅能理解代碼的語法,更能體會到它在解決實際問題中的作用。我還在期待,書中能夠為我揭示Kotlin的一些獨特之處,比如它的空安全特性,我知道這對於避免很多常見的NullPointerException錯誤至關重要,所以我非常希望書中能用清晰的圖示或者生動的比喻來解釋這一點。總之,我希望這本書能夠成為我學習Kotlin的堅實起點,讓我能夠快速上手,並且充滿信心。
評分這本書的外觀設計簡潔大氣,封麵色調沉穩,書名清晰醒目,給人一種專業、值得信賴的感覺。我選擇這本書,主要是因為它“入門精要”的定位,我目前對Kotlin的瞭解非常有限,希望能夠從基礎開始,建立起對這門語言的紮實理解。我非常期待書中能夠提供清晰的代碼示例,並且能夠深入淺齣地講解每一個語法點。我特彆關注書中對於Kotlin的類型係統和麵嚮對象特性的講解,希望它能幫助我理解Kotlin是如何處理數據和組織代碼的。我希望書中能夠包含一些關於Kotlin在實際開發中常用場景的介紹,例如如何利用Kotlin編寫更簡潔、更安全的Android應用,或者如何使用Kotlin進行服務器端開發。我還在期待,書中能夠給我一些關於如何進一步學習Kotlin的建議,比如推薦一些優秀的在綫資源、社區或者進階書籍。這本書對我來說,不僅僅是學習Kotlin的工具,更是我探索編程世界的一個重要夥伴,我希望它能激發我持續學習的熱情,並為我未來的技術發展奠定堅實的基礎。
評分說實話,我之前接觸過其他一些編程語言,但總是感覺入門門檻有點高,學習過程中會遇到很多瓶頸。這次選擇Kotlin,主要是聽朋友說它在Android開發領域非常流行,而且語法更簡潔,學習起來應該會更容易一些。我購買這本書,就是希望能它能幫我快速地建立起對Kotlin語言的整體認知,理解它與其他語言的差異和優勢。我特彆希望書中能提供一些關於Kotlin在實際項目開發中的應用場景,比如如何用Kotlin來構建一個簡單的應用程序,或者如何利用Kotlin的一些特性來優化現有的代碼。我非常期待書中能夠講解Kotlin的一些高級特性,比如協程,我知道這對於實現高並發和異步編程非常重要,而且學習麯綫可能相對陡峭,所以如果書中能提供清晰的解釋和實用的例子,對我來說將非常有價值。我還希望書中能夠涉及一些關於Kotlin與Java互操作性的內容,畢竟Java在很多領域都有廣泛的應用,瞭解如何將Kotlin無縫集成到已有的Java項目中,對於我未來的開發工作會很有幫助。總而言之,我希望這本書能夠幫助我不僅掌握Kotlin的基礎語法,更能理解它在實際開發中的強大能力,為我打開新的編程視野。
評分我是一名對編程充滿好奇心的學習者,雖然之前有過一些零散的編程接觸,但始終沒有係統地學習過一門完整的語言。Kotlin吸引我的地方在於它的現代化和高效性,我聽說它在很多新興技術領域都有應用,比如服務器端開發、數據科學等等,這讓我覺得它是一門非常有潛力的語言。我希望這本書能夠像一位耐心的老師,一步一步地引導我,讓我能夠理解Kotlin的核心概念。我非常看重書中關於“精要”二字的體現,這意味著它應該會抓住Kotlin最核心、最常用的部分進行講解,而不是貪多嚼不爛。我希望書中能提供一些循序漸進的練習題,讓我能夠鞏固學到的知識,並且逐漸提升自己的編程能力。我特彆關注書中對Kotlin函數式編程風格的介紹,我知道這是一種非常優雅和強大的編程範式,但對我來說可能會比較陌生,所以我希望書中能用通俗易懂的方式來解釋它,並提供一些實際的例子。我還在期待,書中能夠為我介紹一些Kotlin常用的庫或者框架,讓我知道在學習完語言本身之後,還有哪些工具可以幫助我更高效地進行開發。這本書對我來說,不僅是一本教材,更是一次探索新世界的機會。
評分這本書的排版布局真的讓我眼前一亮,每一頁都經過瞭精心設計,文字、代碼塊和圖示之間的比例恰到好處,讀起來非常舒服。我尤其喜歡它在講解某個新概念的時候,會先給齣一個簡短的概述,然後迅速切入一個具體的代碼示例,並且在代碼塊旁邊進行詳細的解釋,這對於我這種動手能力比較強的人來說,簡直是福音。我一直覺得,學習編程就像學遊泳,光看理論肯定是不行的,必須得下水去遊。這本書在這方麵做得非常好,我翻看瞭幾頁,發現它提供的代碼示例都是那種小巧精悍,但又能夠清晰展示某個技術點的,我迫不及待地想把這些代碼一個個敲進去,看看它們運行起來是什麼效果。我特彆關注書中對於麵嚮對象編程的講解,因為這涉及到很多核心的編程思想。我希望它能用非常生動形象的方式來解釋類、對象、繼承、多態等概念,甚至可以通過一些生活中的例子來類比,這樣我就不會覺得這些概念太抽象瞭。另外,我注意到書中似乎用瞭一些色彩來區分不同的代碼元素,這對於提高代碼的可讀性非常有幫助,我希望這種做法能夠貫穿全書。總的來說,這本書給我的第一印象就是,它非常注重學習者的體驗,細節之處都做得相當到位。
評分送貨及時,書品包裝完好,還未開始閱讀,但外觀很好,看封麵,感覺應該質量也不錯。
評分看瞭電子版,覺得寫的好纔買瞭書。可以隨時查閱,確實好書。
評分書紙張印刷還不錯,還沒看,先好評占個位置,看完再上詳細些的評價
評分java李興華老師的圖書大名鼎鼎,一屆又一屆的學生畢業瞭,都從李老師的書裏得到瞭受教。
評分書內容沒得說,非常精細,適閤新手,同樣適閤有一定開發經驗的程序猿溫習相關知識點~最新的Kotlin都有涉及~大贊!!!期待後續大佬再齣書!不說瞭,我繼續啃書去瞭~
評分充電時刻,空閑時間研究一下。
評分關注很久,終於下決心入手一本!
評分用瞭一段時間瞭,非常好,很通俗易懂,真是大神之作。快遞很快,隔天就送到瞭,學習安卓的第一啓濛書!
評分現在信賴首選京東,默默噠一直看著它一年一年發展的越來越好,心裏也在為京東發展壯大而加油打氣。為什麼我喜歡京東購物,因為可以當天買自己喜歡的商品,明天就可以到達客戶的傢中,為什麼我所有的評價都相同,因為在京東買的東西太多太多,商品積纍的太多沒有評價,最佩服的,還是京東物流,有時晚上11點前動動手指,購買的商品,第二天上午就送到單位或者傢裏,還可以刷卡付款。自營的商品挺有保證,售後,有問題打專屬客服熱綫。客服很贊,一句話的事兒,直接上門取件退,上門更換新商品,傢電有價保,一個月退貨,半年換貨,實體店兒弱爆瞭,根本沒有競爭力與京東相提並論;比老傢的商鋪街上的價格省瞭一大截票子哈,寶寶平時基本不逛街,在傢逛京東商城就能買到閤意的超值商品,有些明顯比超市還劃算,而且還一模一樣的吃喝生活用品喲,小寶貝們快來選購吧!既省錢,又節省時間,永遠支持信譽商傢京東
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有