Java程序設計
-
【作 者】鄢愛蘭 袁毅 等譯
【I S B N 】978-7-5084-4108-7
【責任編輯】郭東青
【適用讀者群】本科
【出版時間】2006-10-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】432
【千字數】
【印 張】
【定 價】¥38
【叢 書】21世紀高等院校計算機系列教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
Java是一種純面向對象的程序設計語言,它容易學習,但是功能強大。本書重點講述如何創建Java應用程序和通過Swing創建和使用GUI。全書共分為26章和10個附錄,內容主要包括Java程序設計基礎知識,比如變量、賦值、輸入和輸出、計算、圖形和窗口編程、使用if的選擇結構、使用while的循環結構等;面向對象程序設計的一些知識,比如使用庫類、編寫類、使用對象、使用方法等;還有一些高級特性,比如繼承、多態性、接口等;書后的附錄給出了有關Java庫、AWT、applet的知識,可供讀者參考。 本書特別適合于大學一年級學生作為教材,也適合初學者自學使用。
本書目標
本書講述如何編寫Java程序,這些Java程序或者作為獨立的應用程序運行,或者作為applet(web頁面的一部分)運行。
本書適合初學者
如果你以前從來沒有做過任何編程工作,也就是說你完全是一個初學者,那么本書適合你。本書假定你在此之前沒有任何編程知識,也就是從零開始介紹。為了最大限度地便于讀者學習,本書以一種簡單直接的風格編寫。本書主要讀者對象為大學一年級學生,也適合初學者自學使用。
為什么學習Java
Java可能是用于學習和使用的最好的程序設計語言之一,因為它具有以下特性。
1.Java小而美
Java設計者有意去掉了所有冗余的程序設計語言的特性,而是直接切入設計主題。因此Java是以一種優美而富有邏輯的方式將所有必要特性組合在一起的語言。Java的設計逐漸深入,并且意義明確。它容易學習且功能強大。
2.Java是面向對象的
面向對象語言是最新、最成功的程序設計語言。面向對象程序設計是最流行的程序設計方法。Java從一開始就是面向對象的,而不是將面向對象部分作為添加的事物嫁接上去的。
3.Java支持Internet
Java最主要的動機是使人們能夠開發使用Internet和WWW的程序。Java applet能夠輕松地被從Web瀏覽器(比如Internet Explorer)調用,以提供有價值的、引人入勝的功能。此外,Java程序可以很容易地在Internet上傳送,并可在任何計算機上運行。
4.Java是通用的
Java確實是一種通用語言。C++、Visual Basic等語言能夠完成的事情,Java都能完成。
5.Java是平臺獨立的
Java程序可以在幾乎所有的計算機上運行,可以使用幾乎所有的操作系統,而無需做任何更改。試試使用其他任何程序設計語言(幾乎肯定不行!)。這可以用一句口號來總結,即“一次編寫,到處運行”。
6.Java是健壯的
Java編譯器在生成一個要執行的程序時會執行很多嚴格的檢查。一旦程序已經被改正并且編譯無錯誤,它就會正確地執行。然而,如果一個Java程序發生錯誤(程序確實有這種可能性),也不會產生混亂、損害和不確定性。
7.Java擁有庫
因為Java是一種小型語言,它的大部分功能都由保存在庫中的程序段提供。這些庫軟件可用來繪制圖形、訪問Internet、提供圖形用戶界面(GUIS)以及完成很多其他事情。
必要條件
要學習程序設計,你需要一臺計算機和一些軟件。典型的系統是帶有Java軟件開發工具包(Java Software Development Kit,SDK)的個人電腦。該工具包也可用于UNIX、GNU/Linux和Apple系統。使用該工具包可以準備和運行Java程序。還可以使用一些更方便的開發環境。
多做練習
如果你反復閱讀本書直到能倒背如流,那么你仍然不能編寫程序。多做一些編寫程序和程序段的實踐工作,這對于成為熟練又自信的編程高手來說至關重要。
每章的末尾都為讀者準備了一些練習。請認真做這些練習以提高你的編程能力。還有貫穿全文的簡短自測題(答案在每章的末尾),以便你能檢測是否正確理解了該章的知識。
本書的內容
本書講述了程序設計的基礎知識,包括:
變量。
賦值。
輸入和輸出。
計算。
圖形和窗口編程。
使用if的選擇結構。
使用while的循環結構。
本書還介紹了整數、浮點數和字符串。對數組也進行了描述。不管你進行何種編程,所有這些都是基本主題。
本書還詳盡闡釋了程序設計的面向對象特征:
使用庫中的類。
編寫類。
使用對象。
使用方法。
另外還要學習一些更復雜的面向對象程序設計的特征,比如:
繼承。
多態性。
接口。
本書不包括的內容
本書講述了Java的要點,但沒有解釋零碎知識。這樣讀者可以從不必要的細節中解脫出來,重點從總體上掌握Java和程序設計知識。
應用程序還是applet
有兩種不同類型的Java程序:
一個是明顯獨立的程序(稱為應用程序)。
一個是從Web頁面調用的程序(稱為applet)。
本書重點關注應用程序,因為它是使用Java的主要方式(附錄中解釋了如何運行applet)。
圖形還是文本
全書著重于使用圖形圖像而不是文本輸入輸出的程序。我們認為使用圖形圖像更有趣,而且清楚地演示了所有程序設計的重要原則。書中并沒有忽略使用輸入輸出文本的程序,這些程序包含在本書中,但它們是作為次重點出現的。
圖形用戶界面(GUIS)
本書介紹的程序使用了很多GUI特性,比如窗口、按鈕、滾動條,并以很多不同方式使用了鼠標。
AWT還是Swing
有兩種Java機制用來創建和使用GUIS,即AWT和Swing。用戶界面組件的 Swing集合比AWT集合更完整、更強大。本書使用的是Swing方法,因為它的使用更廣泛。
內容順序
程序設計涉及到很多富有挑戰性的概念,編寫有關程序設計類圖書的問題之一就是決定如何以及何時介紹新的概念。在本書中,首先介紹簡單概念,在后面介紹更復雜的概念。從一開始就使用對象,稍后學習如何編寫新對象。我們的方法是從像變量和賦值之類的概念開始,然后介紹選擇和循環,接著介紹對象和類(面向對象的特性)。我們也想確信樂趣對于程序設計是極為重要的,因此從一開始就使用圖像來介紹。
循序漸進
在本書中,一次只詳細介紹一個新概念,而不是一下子將所有概念都搬到你面前。例如,單獨有一章講述編寫方法。
計算機應用
計算機的應用很廣,本書使用以下這些領域的例子:
信息處理。
游戲。
科學計算。
讀者可以選擇重點關注感興趣的應用領域,而在其他領域則少花些時間。
不同種類的程序設計
有很多不同種類的程序設計,例如過程式的、邏輯式的、函數式的、電子表格式的、可視化的和面向對象的程序設計。本書關注的是主流程序設計方式,即面向對象程序設計(OOP),這種程序設計方式在諸如Visual Basic、C++、C#、Eiffel和Smalltalk之類的語言中均得到了實踐。
Java版本
Java是不斷演化的,但是演化很慢。Sun公司時不時就發布Java SDK的新版本。新版本意味著在庫中補充了一些項,以及新的版本號。從1.2開始的所有版本都具有Java 2這個通用名。學習本書時你可以使用1.2之后的任何版本。
學得開心
程序設計是富有創造性而且有趣的事情,尤其是Java程序設計。請寓學于樂!
訪問網站
本書中出現的所有程序都可以在網站上找到,網址為www.booksites.net/bell。
第四版的變化
如果你使用過本書更早的版本,你可能想知道第四版有什么不同。在改版時我們試圖保留舊版的精髓,同時在適當的地方進行了簡化。我們也力圖遵循使用Java的主流趨勢。因此舊版使用applet和AWT來創建GUI,而第四版使用應用程序和Swing。舊版大量使用paint方法,每個人都發現這很難理解。因此第四版我們做了重大簡化,刪除了paint。
我們做了一些細微改變,比如使用術語“call(調用)”而不是長而難念的“invoke(調用)”。我們還使用double變量代替float,因為聲明字面值更容易。
過去還有一章是關于applet體系結構的,但是我們不確定它是否湊效。隨著方法paint的刪除,應用程序結構變得更簡單了,我們就認為不再需要這一章了。還有一章介紹關于GUI組件,該章似乎不太合適。因此我們刪除了這一章,并將它合并到經過改進的有關Java庫的附錄中,其中提供了示例程序。
把抽象類的主題移入到關于繼承的章節中,抽象類正好屬于繼承范疇。我們還創建了關于數組列表的新章節,數組列表有助于過渡到數據結構。
我們希望你喜歡這些改變。
對本書的評價
如果你想給作者發電子郵件,可以發送到D.H.Bell@shu.ac.uk和M.Parr@shu.ac.uk。我們期待著你的來信。
本書由鄢愛蘭和袁毅主譯,參與翻譯工作的人還有:歐陽宇、盛海燕、郭蓓、唐美艷、張波、趙崗善、郭軍喜、代菊容、魏亮和易磊。
譯 者
2006年8月
第1章 Java背景知識 1
1.1 Java的歷史 1
1.2 Java的主要特性 2
1.3 什么是程序 2
1.4 編程原則 4
1.5 編程陷阱 4
1.6 小結 4
1.7 練習 4
1.8 自測題答案 5
第2章 第一個程序 6
2.1 簡介 6
2.2 集成開發環境 6
2.3 文件和文件夾 6
2.4 使用編輯器 7
2.5 創建第一個Java程序 8
2.6 庫 10
2.7 揭開程序的神秘面紗 10
2.8 對象和方法簡介 11
2.9 類的一個比喻 12
2.10 使用文本字段 12
2.11 編程原則 14
2.12 編程陷阱 15
2.13 語法要點 15
2.14 新的語言要素 15
2.15 小結 15
2.16 練習 16
2.17 自測題答案 16
第3章 使用圖形方法 17
3.1 簡介 17
3.2 事件 17
3.3 單擊按鈕事件 19
3.4 圖形坐標系統 19
3.5 對程序的解釋 19
3.6 用于繪圖的方法 20
3.7 繪制彩色圖 21
3.8 創建新程序 22
3.9 順序的概念 23
3.10 使用注釋增加含義 24
3.11 編程原則 24
3.12 編程陷阱 24
3.13 語法要點 24
3.14 新的語言元素 25
3.15 小結 25
3.16 練習 25
3.17 自測題答案 25
第4章 變量和計算 27
4.1 簡介 27
4.2 int的本質 27
4.3 double的本質 28
4.4 聲明變量 28
4.5 賦值語句 31
4.6 計算和運算符 32
4.7 算術運算符 32
4.8 %運算符 35
4.9 使用+運算符連接字符串 35
4.10 字符串和數值之間的轉換 37
4.11 消息對話框和輸入對話框 38
4.12 使用\n格式化對話框中的文本 39
4.13 數值之間的轉換 40
4.14 常量:使用final 41
4.15 表達式的作用 42
4.16 編程原則 42
4.17 編程陷阱 42
4.18 語法要點 43
4.19 新的語言元素 43
4.20 小結 43
4.21 練習 44
4.22 自測題答案 45
第5章 方法和參數 46
5.1 簡介 46
5.2 編寫自己的方法 46
5.3 第一個方法 47
5.4 調用方法 49
5.5 傳遞參數 49
5.6 形參和實參 50
5.7 三角形方法 51
5.8 局部變量 54
5.9 命名沖突 54
5.10 事件處理方法和main 56
5.11 return和結果 56
5.12 構造方法:drawHouse 59
5.13 構造方法:areaHouse 60
5.14 this和對象 61
5.15 重載 61
5.16 編程原則 62
5.17 編程陷阱 63
5.18 語法要點 63
5.19 新的語言元素 63
5.20 小結 64
5.21 練習 64
5.22 自測題答案 65
第6章 使用對象 67
6.1 簡介 67
6.2 實例變量 67
6.3 實例化:通過new使用構造方法 70
6.4 Random類 70
6.5 main方法和new 74
6.6 Swing工具包 74
6.7 事件 75
6.8 創建JButton 75
6.9 使用對象的準則 77
6.10 JLabel類 77
6.11 JTextField類 79
6.12 JPanel類 79
6.13 Timer類 80
6.14 JSlider類 82
6.15 編程原則 84
6.16 編程陷阱 84
6.17 語法要點 84
6.18 新的語言元素 85
6.19 小結 85
6.20 練習 85
6.21 自測題答案 86
第7章 選擇 87
7.1 簡介 87
7.2 if語句 87
7.3 if…else 89
7.4 比較運算符 92
7.5 多個事件 99
7.6 與、或、非 101
7.7 嵌套if語句 103
7.8 switch語句 105
7.9 Boolean變量 108
7.10 比較字符串 111
7.11 編程原則 111
7.12 編程陷阱 111
7.13 語法要點 113
7.14 新的語言元素 113
7.15 小結 113
7.16 練習 114
7.17 自測題答案 116
第8章 循環 119
8.1 簡介 119
8.2 While 119
8.3 for 123
8.4 與、或、非 125
8.5 do…while 126
8.6 嵌套循環 127
8.7 組合控制結構 129
8.8 編程原則 129
8.9 編程陷阱 129
8.10 語法要點 130
8.11 新的語言元素 130
8.12 小結 130
8.13 練習 130
8.14 自測題答案 132
第9章 編寫類 134
9.1 簡介 134
9.2 設計一個類 134
9.3 類和文件 137
9.3.1 單個文件 138
9.3.2 單獨的文件 138
9.4 private變量 139
9.5 public方法 139
9.6 get和set方法 141
9.7 構造方法 141
9.8 多個構造方法 142
9.9 private方法 143
9.10 作用域規則 144
9.11 操作對象 145
9.12 對象析構 146
9.13 static方法 146
9.14 static變量 147
9.15 編程原則 148
9.16 編程陷阱 148
9.17 語法要點 149
9.18 新的語言元素 149
9.19 小結 150
9.20 練習 150
9.21 自測題答案 151
第10章 繼承 153
10.1 簡介 153
10.2 使用繼承 153
10.3 protected 154
10.4 作用域規則 155
10.5 附加項 155
10.6 重寫 156
10.7 類圖 156
10.8 使用繼承 157
10.9 super 157
10.10 構造方法 158
10.11 final 160
10.12 抽象類 160
10.13 編程原則 161
10.14 編程陷阱 162
10.15 新的語言元素 162
10.16 小結 163
10.17 練習 163
10.18 自測題答案 164
(以下略)
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Java Web應用技術項目化教程 [黃日勝 方阿麗]
- JavaScript與jQuery項目化教程(活頁式) [主編 林灃 藍雪燕 宋家慧]
- 網站前端技術案例教程(HTML+CSS+JavaScript)(第二版) [黃華升]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Java面向對象程序設計(微課版) [主編 謝先偉 王海洋]
- Java面向對象程序設計 [主編 張立敏 鄒海濤]
- Java Web開發技術任務驅動式教程 [金靜梅]
- Java編程基礎 [張煥生 崔炳德]
- Java編程基礎實踐指導 [張煥生 陳勇 崔炳德]
- Java基礎編程(微課版) [主編 王海洋 吳科宏 謝先偉]
- 12歲開始學JavaScript和Web應用 [TENTO 著 徐樂群 譯]
- Java程序設計簡明教程 [黃能耿 黃致遠 編著]
- Java程序設計 [主編 張繼軍]
- Java基礎應用與實戰 [彭東海 王志和 張思奇]
- Java Web開發技術與項目實戰 [主編 羅如為]
- Java程序設計案例教程 [主 編 寧淑榮 楊國興]
- Java程序設計 [甘霞]
- Web前端開發從學到用完美實踐HTML5+CSS3+JavaScript+jQuery+AJAX+AngularJS(第2版) [阮曉龍]
- Java程序設計實訓教程 [主編 寧淑榮 楊國興]
- 網站前端技術案例教程(HTML+CSS+JavaScript) [黃華升]
- Java程序設計習題解答及上機指導 [李素若]
- Java核心API編程 [主編 肖睿 禹晨 馬凌]
- Java Web開發實戰 [主編 肖睿 高海波 徐申]
- Java面向對象編程 [肖睿 李志勇]
- Java面向對象程序設計 [主編 肖奎 姚競]
- Java面向對象程序設計 [主編 陳占偉]
- Java Web應用開發 [萬青 楊智勇]
- Bootstrap與jQuery UI框架設計 [主編 肖睿 吳振宇]
- Java ME手機應用程序開發 [易燦 李志勇 編著]