本書重點介紹Java語言的核心語法,程序的流程控制,Java面向對象程序設計的主要內容,常用API,JDBC數據庫編程等Java程序設計的核心基礎內容。另外,通過大量的示例向讀者展示Java的編程規(guī)范和編程方法,幫助讀者建立由感性到理性的深入認識,特別注重提高讀者運用Java語言和面向對象技術解決實際問題的能力,讀者通過實踐例題以及完成課后編程習題,能夠掌握Java編程的基本技巧,為今后進一步學習運用Java語言進行各種應用的開發(fā)打下堅實的基礎。
適讀人群 :本書適用于高職高專、應用型本科、中職等層次學校的相關專業(yè)使用,可作為Java初學者的入門教材和Java相關課程設計教材,也可以作為Java開發(fā)工程師的培訓教材,還可以作為企業(yè)崗前培訓教材。
本書的目標是幫助廣大高職高專學生學習和掌握Java程序設計語言的核心基礎知識和技術。本書知識點系統連貫、邏輯性強; 重視實際應用,案例豐富;學習模塊劃分合理,重難點突出,利于組織教學。作為一種編程語言和技術的入門教程,zui難也zui重要的是令一些非常復雜又難以理解的編程思想和問題簡單化,令初學者能盡量輕松理解并快速掌握。本書對每個知識點都進行了較詳盡的講解,精心設計了相關的例程,盡量用生動形象的案例來講解抽象的編程思想和模擬這些知識點在實際工作中的可能運用,力求做到知識由淺入深、由易到難,循序漸進地引導學生和讀者逐步掌握Java程序設計的核心基礎知識和技術。
Java語言具有簡單、面向對象、分布式、健壯性、安全性、可移植性、多線程、高性能等諸多優(yōu)點,是近十年來計算機編程語言排行榜上的佼佼者,可以用于開發(fā)各種領域的應用軟件。熟練掌握Java語言是軟件從業(yè)人員的必備技能。
本書的目標是幫助廣大高職高專學生學習和掌握Java程序設計語言的核心基礎知識和技術。本書知識點系統連貫、邏輯性強;重視實際應用,案例豐富;學習模塊劃分合理,重難點突出,利于組織教學。作為一種編程語言和技術的入門教程,最難也最重要的是令一些非常復雜又難以理解的編程思想和問題簡單化,令初學者能盡量輕松理解并快速掌握。本書對每個知識點都進行了較詳盡的講解,精心設計了相關的例程,盡量用生動形象的案例來講解抽象的編程思想和模擬這些知識點在實際工作中的可能運用,力求做到知識由淺入深、由易到難,循序漸進地引導學生和讀者逐步掌握Java程序設計的核心基礎知識和技術。
本書共包含10個項目。項目1認識Java語言,介紹計算機程序和Java程序設計語言的基本情況;項目2開發(fā)第一個Java程序,主要介紹JDK的安裝使用、Java的集成開發(fā)環(huán)境的安裝使用,并動手實現第一個Java應用程序;項目3 Java語言基礎、項目4程序的流程控制和項目5方法與數組,詳細介紹Java語言的核心語法、流程控制語句、方法的定義和調用、數組的使用等,這些都是使用Java語言編寫應用程序代碼的最重要的基本知識,讀者一定要認真學習每一個知識點;項目6類與對象和項目7面向對象特性,詳細介紹了Java面向對象編程的主要知識和技術,對于初學者來說面向對象的編程思想需要多思考、多實踐、花較大精力來理解和掌握;項目8常用API,介紹了Java系統類庫提供給程序員使用的一些常用且實用的類,尤其是集合類在實際開發(fā)中很常用;項目9異常處理,介紹了Java的異常處理機制和異常處理語句,可以令讀者編寫的程序更健壯和更友好;項目10 JDBC數據庫編程,詳細介紹了Java連接數據庫和對數據庫進行操作的步驟和代碼的編寫,JDBC數據庫編程技術在實際開發(fā)中運用十分廣泛,讀者應認真學習和掌握JDBC數據庫編程技術,為后續(xù)運用Java語言開發(fā)各種類型的應用程序打下堅實的基礎。
Java程序設計課程是實踐性較強的課程,讀者需要通過大量的實踐以掌握Java語言的使用、編程技巧,養(yǎng)成良好的規(guī)范編碼的習慣,因此本書每個項目均設計了許多例程,使讀者能通過這些例程加強對知識點的理解,也能通過動手實現這些例程而潛移默化地鍛煉動手編碼能力。每章結束時都給出了典型的實訓任務,通過對這些實訓任務的實踐練習,可以進一步鍛煉和提高編碼能力。
為了方便教學,本書還配有電子課件等教學資源包,任課教師和學生可以登錄“我們愛讀書”網(www.ibook4us.com)免費注冊并瀏覽,或者發(fā)郵件至hustpeiit@163.com免費索取。
本書由武漢軟件工程職業(yè)學院肖英任主編;由武漢軟件工程職業(yè)學院劉嵩、趙丙秀、馬力,江西應用科技學院彭軍,青島理工大學琴島學院馬金霞任副主編;由武漢軟件工程職業(yè)學院劉潔、郭俐任參編,最后由肖英統稿。
由于時間倉促,加之編者水平有限,書中不妥或錯誤之處在所難免,殷切希望廣大讀者批評指正。同時,懇請讀者一旦發(fā)現錯誤,及時與編者聯系,以便盡快更正,編者將不勝感激。
編者2016年12月
項目1認識Java語言
1.1計算機程序
1.2Java程序設計語言
1.3Java平臺介紹
項目2開發(fā)第一個Java程序
2.1下載、安裝和配置JDK
2.2JDK+記事本開發(fā)Java程序
2.3集成開發(fā)環(huán)境Eclipse
2.4使用Eclipse開發(fā)Java程序
2.5Java程序開發(fā)的一般流程
項目3Java語言基礎
3.1Java語言的基本語法
3.2常量與變量
3.3運算符與表達式
3.4簡單的輸入輸出
項目4程序的流程控制
4.1流程控制語句
4.2選擇結構語句
4.3循環(huán)結構語句
4.4跳轉控制語句
項目5方法與數組
5.1方法
5.2數組
項目6類與對象
6.1類與對象的基本概念
6.2創(chuàng)建類
6.3對象的使用
項目7面向對象特性
7.1對象的創(chuàng)建與銷毀
7.2引用賦值
7.3方法
7.4類的靜態(tài)成員
7.5繼承
7.6抽象類與接口
7.7類的轉型
7.8內部類
7.9包與訪問控制修飾符
項目8常用API
8.1API的概念
8.2字符串處理
8.3Math類
8.4日期時間類
8.5集合類
項目9異常處理
9.1異常概述
9.2處理異常
9.3throw和throws關鍵字
9.4自定義異常
9.5Java的內置異常
項目10JDBC數據庫編程
10.1JDBC數據庫編程概述
10.2JDBC數據庫編程基本操作
10.3JDBC編程進階
參考文獻
3.1 Java語言的基本語法 每一種語言都有自己的語法規(guī)則,編程語言也不例外。使用Java語言進行程序開發(fā)就必須遵從Java語言的語法規(guī)則。
3.1.1Java程序的基本結構 Java程序可由若干個類組成,至少有一個類,初學者暫時可以簡單理解為一個類就可以成為一個Java程序,這個類中需要包含一個main()方法,它是Java程序的執(zhí)行入口。這樣的類定義的一般格式如下: 修飾符class類名{ public static void main(String\[\] args){ 程序代碼 } } 需要注意的幾個地方: (1)修飾符目前用public,表示這個類是公共的,它的可訪問權限是最大的。 (2)class是關鍵字,聲明定義了一個類。 (3)Java語言是嚴格區(qū)分大小寫的,這里的class不能寫為Class,public不能寫為Public,否則Eclipse編譯時將報錯。 (4)類名按照見名知意原則來取名,一般由一個或多個單詞組成,每個單詞首字母大寫,如HelloWorld。 (5)整個類體由一對大括號{}括起來,內部包含整個main()方法的定義。 (6)main()方法由方法頭和一對大括號{}括起來的方法體組成。方法頭的寫法固定,其中只有args這個參數名是可以修改的。方法體中的程序代碼可以包含若干條可執(zhí)行語句,每條語句以分號(;)結束,代表實現一定的功能,例如: System.out.println("Welcome to Java World! "); 這條語句的功能是輸出這句話:Welcome to Java World! 除了雙引號("")內部包含的內容,其他地方的符號全部是英文狀態(tài)下的符號,如點(.)、雙引號("")、分號(;)、大括號、小括號等。 (7)Java語言對代碼的格式編排沒有嚴格的限定,比如類定義的代碼也可以按照如下格式進行排版: 修飾符class類名{public static void main(String\[\] args){ 程序代碼}} 但這樣的代碼的層次不清晰,不便于閱讀。因此,為提高程序代碼的可讀性,建議按照以下格式進行代碼的排版: publicclassHello { publicstaticvoidmain(Stringargs\[\]){ String name="Tom"; System.out.println("Hello," + Tom); } } 被包含在類體內部的整個main()方法代碼整體向右縮進,main()方法體中每一條語句各占一行。
3.1.2標識符 在編寫程序時,常常需要定義一些符號名稱來標記類名、方法名、包名、變量名、參數名等,這些符號名稱被稱為標識符。標識符是由字母、數字、下劃線(_)和美元符號($)組成的字符序列,區(qū)分大小寫,不能以數字開頭,不能是Java中的關鍵字。 以下為合法的標識符: aIdentifier、_Identifier、$Identifier、cat、stu_1 以下標識符不合法: 2018WorldCup(數字開頭)、Identifier@Java(@為非法組成部分)、else(關鍵字) 在程序中使用標識符時,必須嚴格遵守標識符的定義規(guī)則,否則程序在編譯時會報錯。除以上必須遵守的規(guī)則之外,為了增強代碼的可讀性,建議也遵循以下的編碼規(guī)范: (1)類名、接口名每個單詞的首字母大寫,例如HelloWorld,MyClass。 (2)變量名、方法名第一個單詞全小寫,從第二個單詞開始每個單詞首字母大寫,例如stuName,getStuName。 (3)常量名所有字母都大寫,多個單詞之間可以使用下劃線連接,例如DAY_OF_WEEK。 (4)包名所有字母全小寫,例如java.util。
3.1.3關鍵字 關鍵字是Java語言中事先定義好的已經被賦予了特定含義的單詞,也稱作保留字。關鍵字對于Java的編譯器來說有特殊的作用,如先前提到的class表示定義一個類。目前Java語言中的關鍵字如下所示: abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while assert enum 注意,所有的關鍵字都是小寫,不能將關鍵字當作標識符來使用。
3.1.4注釋 注釋是對程序中某行代碼或某個功能的解釋說明。在源代碼中寫上注釋,是一個良好的開發(fā)習慣。一方面,注釋可以幫助自己或者他人更好地理解源代碼的用途、使用條件、使用方法、結果等;另一方面,便于以后的系統維護和升級等。 注釋在Java源文件中有效,在編譯程序時編譯器會忽略這些注釋信息,不會將其編譯到字節(jié)碼文件中去。 Java語言的注釋有三種類型,具體如下。 1.單行注釋:// “//”后面的內容為注釋內容,不參與編譯。例如: int i=1;//定義整型變量i,初值為1 2.多行注釋:/*......*/ 注釋內容較長,需要換行時,使用“/* 注釋內容 */”的形式進行注釋。例如: int i=1; /*定義整型變量i i的初值為1 */
3.Javadoc注釋:/**.......*/ 使用/**.......*/括起來的注釋,可以使用Javadoc工具提取其注釋內容生成HTML形式的開發(fā)幫助文檔。
3.2 常量與變量 計算機可以處理的數據是一個廣義的概念。例如,128,3.14159是數據,“你好”這一串字符也是數據,前者是數值數據,后者是字符串數據,是非數值數據。顯然,為了表示這些數據,它們在內存中必須以不同的方式存放,占用的存儲空間也不同,為處理這些數據,計算機能夠對它們施加的運算類型也不同。為此,編程語言建立了數據類型的概念,對程序中處理的數據進行分類。 每一種數據類型定義了一個具有相同性質的數據集合。各種數據類型的數據具有不同的性質。程序中所用到的每一個數據(包括常量和變量),都有一個和它相聯系的類型。由此決定了數據所具有的值,也決定了對該數據所能進行的操作。
3.2.1常量 常量就是程序中固定不變的值,是不能改變的數據。 一種常量是程序中出現的字面值,它們也有所屬的數據類型。比如:100是整型常量,3.14159是浮點型常量,‘A’是字符型常量,“你好”是字符串常量,true和false分別是表示邏輯真和假的常量。 這種字面值常用于給變量賦值,例如: doubleprice=8.5; //定義了double類型的變量price,賦予初值8.5 其中賦值號(=)的作用是將其后邊的值賦給左邊的變量,8.5就是浮點型字面值常量。price是變量,它的值是可以修改的,可再用賦值號(=)將其值修改為別的值。例如: double price=8.5; //定義了double類型的變量price,賦予初值8.5 price=10.5;//修改price變量的值為10.5 另一種常量:通過關鍵字final將變量定義為常量。一個變量如果被定義為常量,則其值不可再修改。例如: final double PI=3.14; //正確 PI=3.1415926; //編譯時報錯,常量PI的值定義后不可再修改 常量命名的規(guī)范是:所有字母全大寫,多個單詞之間用下劃線(_)連接。 3.2.2變量 變量是指在程序執(zhí)行過程中其值可以改變的數據。程序運行期間,隨時可能產生一些臨時數據,程序會將這些數據保存在一些內存單元中,這些內存單元用一個標識符來進行標識,這樣的內存單元就是變量,定義的標識符就是變量名,內存單元中存儲的數據就是變量的值。 通過代碼來學習變量的定義: int m=10;//定義了整型變量m,初值為10 int n;//定義了變量n,未賦予初值 n=m+3;//取變量m的值與3相加,和值存入變量n的內存單元 上述代碼執(zhí)行到第二行時的內存狀態(tài)如圖31所示,執(zhí)行第三行時的內存狀態(tài)如圖32所示。 圖31變量m、n在內存中的狀態(tài)(第二行) 圖32變量m、n在內存中的狀態(tài)(第三行) 在方法體內,變量定義后須先賦值,然后才能使用。 例程31VariableDemo.java。 package ch03; public class VariableDemo { public static void main(String\[\] args) { int m; System.out.println(m);//此行會報錯 } } 編譯時,語句System.out.println(m);處會報錯,原因就是變量m定義了變量名,未經賦值不可使用。 將上述例程代碼修改為如下代碼: package ch03; public class VariableDemo { public static void main(String\[\] args) { int m;//定義變量m,未賦值 m=10;//m的內存單元存入整型值10 System.out.println(m); } } 可編譯成功,運行結果將輸出:10。