基本資料
Java 就該這樣學( 金牌講師兩個小時帶你編程入門,開心學 Java )
王洋 編著
![Java就該這樣學](/img/c/441/wZwpmL1gTM4ITMxcTNwYjN1UTM1QDN5MjM5ADMwAjMwUzL3UzL3czLt92YucmbvRWdo5Cd0FmLwE2LvoDc0RHa.jpg)
ISBN 978-7-121-20222-3
2013 年 6 月出版
定價: 49.00 元
296 頁
16 開
編輯推薦
一直在尋找一本能夠快樂教大家學編程的書,再仔細看他的書,一看不忍釋卷,不是一般的有趣,簡直是相當的有趣,真如王洋老師自己所說的,他學中文的妻子也跟著這本書學會了Java編程!
讓我們一起來隨著這本書玩代碼吧!
內容提要
本書基於建構主義教育思想,通過大量循序漸進的案例,讓學生在體驗中掌握Java語句,同時獲得編程能力、排錯能力和學習能力。本書多次使用陷阱式教學法,幫助學生深刻理解所學知識,理解面向對象編程思想。本書詳細介紹了Java程式設計的開發環境、概念和方法。內容分為四個階段:小案例階段、小案例推動大項目階段、重點建立複雜編程邏輯階段和綜合大項目階段,用於鞏固面向對象編程思想,並且彌補即時聊天項目在資料庫套用上的不足。
本書的內容和組織形式立足於高校教學教材的要求,適用於從職業院校到重點本科院校的課程和學生群體,可以作為Java語言入門教材,或者面向就業的實習實訓教材,同時也可以作為計算機技術的培訓教材,讀者完全可以通過本書自學Java技術。
書本目錄
第1部分認識Java程式
1.1 寫代碼前的準備 1
1.1.1 程式的入口 2
1.1.2 初步理解類和對象 4
1.2 畫王八 5
1.2.1 運行Java程式 8
1.2.2 繪圖 11
1.3 滿天星星 19
1.4 飛行的小球 24
1.4.1 使用執行緒 25
1.4.2 執行緒的生命周期 29
1.5 小球撞牆 31
1.6 下大雪 35
1.7 鍵盤控制小球 40
1.8 打字母的遊戲 48
1.9 滑鼠控制小球 59
1.10 第一階段總結 61
第2部分認識Java程式
2.1 聊天界面 63
2.1.1 任務描述 63
2.1.2 做按鈕 64
2.1.3 Java的布局思想 66
2.1.4 登錄界面 71
2.1.5 主界面 72
2.2 回響用戶輸入 75
2.2.1 任務描述 75
2.2.2 事件回響 75
2.2.3 關於字元串內容的比較 78
2.2.4 取得用戶名和密碼 80
2.2.5 用面向對象的思想重寫 82
2.2.6 上溯和下溯的討論 83
2.3 IO流 85
2.3.1 任務描述 86
2.3.2 讀一個字元 87
2.3.3 讀整個檔案 90
2.3.4 複製檔案 93
2.3.5 複製大檔案 93
2.3.6 檔案的加密/解密 96
2.3.7 異常的干擾 101
2.3.8 字元流 103
2.3.9 實現聊天記錄 106
2.4 建立網路通信 110
2.4.1 什麼是網路 110
2.4.2 在網路上傳訊息 113
2.4.3 到伺服器驗證用戶名和密碼 119
2.4.4 將聊天信息傳送到伺服器 122
2.5 資料庫訪問 130
2.5.1 接觸MySQL 133
2.5.2 創建和刪除資料庫 135
2.5.3 創建、修改和刪除表 136
2.5.4 關於資料庫設計 139
2.5.5 學習添加、刪除和修改數據 141
2.5.6 查詢數據 143
2.5.7 SQL複習 148
2.5.8 用Java訪問資料庫 149
2.5.9 用戶身份驗證 157
2.5.10 將代碼融入項目中 160
2.5.11 討論反射 162
2.6 應對多用戶訪問 168
第3部分獲得邏輯能力
3.1 用數組實現的記事本 172
3.2 使用鍊表的記事本 178
3.3 讓Java系統庫幫助你 184
3.4 思考面向對象和面向過程的不同 187
3.5 深入學習ArrayList和LinkedList 188
3.5.1 泛型 190
3.6 Set集合193
3.7 試試二分查找法,理解二叉樹 199
3.8 複製一個目錄的內容 201
3.9 Map 211
3.10 保存用戶的Socket 212
3.11 同步用戶名215
3.12 多用戶轉發邏輯219
第4部分理解面向對象
4.1 用面向對象的思想重寫聊天程式 230
4.2 做一個資料庫的管理工具 238
4.3 駕馭JTable 243
4.4 有更好的方法駕馭JTable 247
4.5 用面向對象的方法駕馭JTable 248
4.6 完成資源管理器 256
4.7 有沒有更好的參數傳遞方式 275
附錄A 準備編程環境276
作者簡介
王洋老師
國家軟體出口中心首席IT教育專家,10年知名IT企業CTO從業經驗,9年IT教學培訓從業經驗。曾在清華、北大、北理工、北航等近百所國內知名院校做技術演講,近5年每年在全國各高校進行130多場技術講座,反響熱烈。
“基於學生認知曲線的項目驅動教學法”創始人,通過該方法培養出來的教師多次獲得學生綜合測評滿分的成績,近萬名學生接受過該方法的學習和指導,學生覆蓋清華、北大的研究生,985、211知名院校的本科生、專科生。
書本前言
關於學習
一直以來人們都認為教師和書籍是知識的載體,教學過程就是將知識傳遞給學生,於是書上寫滿了正確的知識,學生看書就可以迅速掌握知識,理論上這是高效率的系統。事實上只有極少數人能夠適應這樣的系統,因為這些知識也是有人經過一個過程得到的,忽略了發現知識的過程,而直接將結果傳遞給學生,似乎高效率,但是學生卻常常無所適從,因為學習是發現知識的過程,而不是記住知識的過程。
好在建構主義教育思想指明了更加適合學生的教學過程,在這一思想下,書和教師從正確知識的傳遞者,轉變成探索知識的引領者,帶領著學生去體驗、去感覺、去發現屬於學生自己的知識。正如這本書,讀者會發現有60%的內容是不正確的,這些錯誤是學習過程避免不了的。優秀學生的不同之處就是,通過自己的努力在到達學習目標的道路上,不斷地調整,將錯誤的理解剔除掉,問題是大多數學生無法完成這個過程,要么陷入錯誤的包圍中,最終放棄了探索,要么通過死記硬背來達到學習目的,結果是學生能夠通過考核,卻沒有運用知識的能力。學習離正確的軌道越來越遠,甚至很多人迷失了學習的真正目標,將記住知識作為唯一的目標,很多教育者苦苦探索的正確的教育途徑,在教育理論研究中早已經被發現,那就是建構主義教育。
建構主義教育思想從來不認為掌握知識是學習的最終目的,我認為學習的目標是認知、能力和精神。認知和知識是不同的,知識停留在人的頭腦中,而認知是能夠被熟練使用的知識;能力在不同的領域是不同的,在這本書的範疇內,一個優秀的Java程式設計師,需要有編程的能力、排除錯誤的能力、探索新技術的能力;如果學習的目的僅僅是為了掌握一項技術,那么人終將會被新的技術手段所替代,任何學習過程都需要是生命價值的提升,一個程式設計師需要有嚴謹的態度、專注的品質、探索的精神和創新的意識。這些學習目標不是一節課或一個章節的任務,而是需要通過整個教學過程來建構。
一直以來學生的學習動機都是教育理論界熱衷討論的話題,我認為學生學習的動機有三個方面:一是為了獲得喜悅,二是為了消除恐懼,三是自我效能。好的成績可以獲得家長、老師的表揚,可以有更好的名次甚至獎學金;而差的成績會被批評、留級,甚至拿不到畢業證。我們發現普遍的教學手段是為了推動學習動機的前兩個方面,這造成了兩個可能的結果:一是有些學生對於獎勵或者懲罰麻木了,一旦喪失了學習動機,自然好的成績就無從談起;二是在另外一些學生身上,這些手段一直能夠起作用,我們會得到所謂的好學生,問題是,這些動機是外界推動的,而非內生的,這些習慣於此的好學生或許一生都在意別人的評價。如果教學過程能夠激發學生的自我效能,讓學生的學習是基於自己強烈的愛好和成功的喜悅,我們就一定能夠培養出優秀的學生,而他們也將一生受益。
問題是,為什麼建構主義教育思想如此的好,卻很少在教學實踐中套用?這是因為建構主義和現有的教學形式相比仍有些弱點:
第一,建構主義教育的效率理論上比較低。而建構主義教育要呈現知識探索的過程,這樣會消耗更多的時間和精力。
第二,建構主義教育的效果不可控。學生是通過體驗自己發現整合知識,那么不同的學生或許得到的結論不同、深度不同。
第三,考核困難。我們不能再用知識點來考核學生,因為教學過程中就沒有傳遞經典的知識點。
第四,實施建構主義教育對於教師的要求比較高。教學過程的設計建立在對學生深入理解的基礎上,教師不僅僅要準備知識。
為了實現上述效果,教師將扮演不同以往的角色,教師不再是知識的載體,教師將陪伴著學生一同探索,帶領著學生犯錯誤,引領著學生思考整合。為了克服建構主義教育思想的弱點,在寫這本書時,我基於對學生和技術的理解,剔除了大量知識點的講解,在反覆的教學實踐中,已經能夠獲得和傳統教學相同的教學效率。另外,我大量總結和研究了學生的學習過程,建立了學生在學習Java過程中的學習曲線,依照學習曲線來評估和考核學生的學習效果。
關於本書
本書總結了我多年來在這條道路上的探索,力求提供基於建構主義教育思想的Java教學材料,幫助學生輕鬆地掌握作為Java程式設計師所需要的知識和能力。書中的內容並不是簡單的案例堆砌,每個部分的任務都包含了對相關知識的整合,都基於學生的學習曲線特點。
我在8年教學探索後才動手寫這本書,是因為我一直相信“教育是用生命影響生命的過程”。我無法在一本書中實現和我親自上課同樣的影響過程,課堂上一遍遍地重複代碼所傳遞的嚴謹態度,無法在書中呈現,加上我對技術、對學生的理解,以及對建構主義教育思想理解的局限,讓我清楚地知道,我並沒有完成一部讓我心滿意足的作品,書中不可避免地有很多不足,懇請讀者批評指正。
這本書的內容是我數以萬計的學生的成果,甚至有很多案例是我的學生在學習過程中發明的。是他們的忍受、包容和努力幫助我完成了這本書。我要感謝我的家人,我兒子的出生和成長,讓我開始接觸和研究教育理論,給我之前漫無目的的探索指明了方向。為了讓這本書通俗易懂,我那學文科的愛人像一名真正的學生一樣,通過這本書來學習Java技術,在她的努力下,這本書具備了更廣的覆蓋範圍,確保讀者即使沒有任何專業基礎,也能夠通過這本書掌握Java技術。同時也要感謝電子工作業出版社的老師為本書的出版所付出的辛勤工作。
光碟話題
我一直希望這本書的定價儘可能低,希望有更多的人能夠沒有負擔地學習Java技術,本意不想提供光碟,但是權衡再三,由於本書中的代碼是伴隨著講解逐步展開的,很多代碼沒有整體呈現(否則會增加太多頁數),所以不得不通過光碟提供書中的代碼,這些代碼被放在codes目錄中,按照書中的章節組織。需要強調的是,請不要直接編譯運行,或者複製我所提供的代碼,光碟中的代碼是我的,只有你親手輸入到電腦里的內容才屬於你。