PPT課件-Java程序設(shè)計基礎(chǔ)與實踐_第1頁
PPT課件-Java程序設(shè)計基礎(chǔ)與實踐_第2頁
PPT課件-Java程序設(shè)計基礎(chǔ)與實踐_第3頁
PPT課件-Java程序設(shè)計基礎(chǔ)與實踐_第4頁
PPT課件-Java程序設(shè)計基礎(chǔ)與實踐_第5頁
已閱讀5頁,還剩184頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第1章面向?qū)ο蟪绦蛟O(shè)計概述學(xué)習(xí)目標(biāo)理解面向過程和面向?qū)ο蟪绦蛟O(shè)計思想的區(qū)別掌握J(rèn)ava語言的基本特點熟悉Java語言的各種開發(fā)平臺重點難點面向?qū)ο蟪绦蛟O(shè)計思想的基本概念Java語言的基本特點Java語言開發(fā)平臺的適用場合1.1 程序設(shè)計思想的發(fā)展面向過程的程序設(shè)計思想及語言面向?qū)ο蟮某绦蛟O(shè)計思想及語言1.1.1 面向過程的程序設(shè)計思想及語言 “面向過程”是一種以事件為中心的編程思想,即分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用。 面向過程是一種基礎(chǔ)的方法,是自上向下步步求精,將一個復(fù)雜任務(wù)按照功能進(jìn)行拆分,并逐層細(xì)化到便于理解和描述的程度,最終形成

2、由若干獨立模塊組成的樹狀結(jié)構(gòu),所以面向過程最重要的是模塊化的設(shè)計思想。 當(dāng)程序規(guī)模不是很大時,面向過程的方法還會體現(xiàn)出一種優(yōu)勢,因為程序的流程很清楚,按照模塊對應(yīng)函數(shù)的方法可以很好地組織。1.1.1 面向過程的程序設(shè)計思想及語言 最初問世的高級語言都屬于面向過程的編程語言,用來實現(xiàn)程序的順序、選擇、循環(huán)這三種結(jié)構(gòu),比較著名的語言有Pascal、Modula、Bliss、Euclid、Edison、Gypsy、CLU、XCY-2、Smalltalk、C等。按照模塊對應(yīng)函數(shù)的方法可以很好地組織。“面向過程”程序設(shè)計方法也有它的缺陷,主要表現(xiàn)在以下方面:(1)難以適應(yīng)大型軟件的設(shè)計(2)程序可重用性

3、差這些由結(jié)構(gòu)化程序設(shè)計的特點所導(dǎo)致的缺陷,其本身無法克服,而越來越多的大型程序設(shè)計又要求必須克服它們,這最終導(dǎo)致了“面向?qū)ο蟆痹O(shè)計方法的產(chǎn)生。1.1.2 面向過程對象的程序設(shè)計思想及語言 “面向?qū)ο蟆背绦蛟O(shè)計是一種解決問題時整體看待一個實體的思想。它是從現(xiàn)實世界中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),強調(diào)直接以現(xiàn)實世界中的事物為中心來思考問題、認(rèn)識問題,并根據(jù)這些事物的本質(zhì)特點,把它們抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位。簡單地來說,就是將我們編程時獨立考慮的相關(guān)的一些屬性和一些操作都“打個包”,整體來對待,也就是將我們現(xiàn)實世界的事物看成屬性(數(shù)據(jù))和它本身的操作(方法)來整體對待。把

4、數(shù)據(jù)和方法整合到一起就形成了類,類聲明得到對象,編程時有效地利用類的繼承性,會在很大程度上提高編程效率。1.1.2 面向過程對象的程序設(shè)計思想及語言 與面向過程程序設(shè)計相比,面向?qū)ο蟪绦蛟O(shè)計有以下優(yōu)點:(1)數(shù)據(jù)抽象的概念可以在保持外部接口不變的情況下改變內(nèi)部實現(xiàn),從而減少甚至避免對外界的干擾。(2)通過繼承可大幅減少冗余的代碼,并可以方便地擴(kuò)展現(xiàn)有代碼,提高編碼效率,也減少了出錯概率,降低了軟件維護(hù)的難度。(3)結(jié)合面向?qū)ο蠓治?、設(shè)計,允許將問題中的對象直接映射到程序中,減少了軟件開發(fā)過程中中間環(huán)節(jié)的轉(zhuǎn)換過程。(4)通過對對象的辨別、劃分可以將軟件系統(tǒng)分割為若干相對為獨立的部分,在一定程度上

5、便于控制軟件復(fù)雜度。(5)通過對象的聚合、聯(lián)合,可以在保證封裝與抽象的原則下實現(xiàn)對象的內(nèi)在結(jié)構(gòu)以及外在功能的擴(kuò)充,從而實現(xiàn)對象由低到高的升級。1.1.2 面向過程對象的程序設(shè)計思想及語言 面向?qū)ο蟪绦蛟O(shè)計語言與傳統(tǒng)的面向過程編程語言的主要區(qū)別在于:傳統(tǒng)過程性語言中把數(shù)據(jù)以及處理它們的子程序當(dāng)作互不相關(guān)的成分分別處理,而面向?qū)ο笳Z言則把這兩者統(tǒng)一作為對象封裝一起進(jìn)行處理。 面向?qū)ο蟮乃枷胧荊. Booch在研究Ada軟件開發(fā)方法時首先提出來的,它的一個重要概念就是類。 完全面向?qū)ο蟮恼Z言有Smalltalk、C+、Eiffel、Java等。1.2 Java程序設(shè)計語言Java語言概述Java語言

6、的三大開發(fā)體系1.2.1 Java語言概述 1995年5月23日,Sun公司正式發(fā)布了Java產(chǎn)品。 Java語言一經(jīng)推出,就受到了業(yè)界的關(guān)注。Netscape公司第一個認(rèn)可Java語言,并于1995年8月將Java解釋器集成到它的主打產(chǎn)品Navigator瀏覽器中。接著,Microsoft公司在Internet Explorer瀏覽器中認(rèn)可了Java語言。Java語言開始了自己的發(fā)展歷程。 Java語言是簡單的、面向?qū)ο蟮恼Z言,它具有分布式特點、安全性,又可以實現(xiàn)多線程,更主要的是它與平臺無關(guān),解決了困擾軟件界多年的軟件移植問題。1.2.2 Java語言的三大開發(fā)體系 Java發(fā)展到今天,已

7、從編程語言發(fā)展成為全球第一大通用開發(fā)平臺。Java技術(shù)已被計算機(jī)行業(yè)主要公司所采納。1999年,Sun公司推出了以Java 2平臺為核心的J2SE、J2EE和J2ME三大平臺。Java 2 Platform, Standard Edition(J2SE)Java 2 Platform, Enterprise Edition(J2EE)Java 2 Platform, Micro Edition(J2ME) 簡單地說,J2SE用于小型程序,J2EE用于大型程序,J2ME用于手機(jī)等程序。J2SE包含于J2EE中,J2ME包含了J2SE的核心類,但新添加了一些專用類。語言都是相同的,只是捆綁的類庫A

8、PI不同。也就是說,J2SE是基礎(chǔ);壓縮一點,再增加一些CLDC等方面的特性就是J2ME;擴(kuò)充一點,再增加一些EJB等企業(yè)應(yīng)用方面的特性就是J2EE。第10章Java的數(shù)據(jù)庫編程開發(fā)重點難點掌握Connection,PreparedStatement語句掌握ResultSet的循環(huán)處理學(xué)習(xí)目標(biāo)掌握J(rèn)DBC的工作原理掌握如何獲取數(shù)據(jù)庫連接掌握如何對數(shù)據(jù)進(jìn)行增、刪、改、查10.1 典型案例【案例描述】 使用Eclipse編寫程序,假定在SQL Server 2012中已經(jīng)建立名稱為news的數(shù)據(jù)庫,數(shù)據(jù)庫用戶名為sa,密碼為sa,連接數(shù)據(jù)庫成功輸出“建立連接成功!”并關(guān)閉連接。運行結(jié)果如圖所示?!?/p>

9、運行結(jié)果】10.2.1 JDBC的功能簡介 JDBC是Java數(shù)據(jù)庫連接技術(shù)的簡稱,提供連接各種常用數(shù)據(jù)庫的能力。有了JDBC,訪問各種數(shù)據(jù)庫就是一件很容易的事。換而言之,有了JDBC,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫或SQL Server數(shù)據(jù)庫又專門寫另外的程序。我們只需要用JDBC寫一個程序就夠了。10.2.1 JDBC的功能簡介JDBC程序的工作原理1JDBC API:提供了Java應(yīng)用程序與各種不同數(shù)據(jù)庫交互的標(biāo)準(zhǔn)接口。2JDBC Driver Manager :由Sun公司提供,它能夠管理各種不同的JDBC驅(qū)動。3JDBC驅(qū)動:由各個數(shù)據(jù)庫廠商提

10、供,負(fù)責(zé)連接各種不同的數(shù)據(jù)庫。10.2.1 JDBC的功能簡介 JDBC API可做三件事: 與數(shù)據(jù)庫建立連接、發(fā)送SQL語句、處理結(jié)果JDBC API工作的4個重要環(huán)節(jié)。(1)DriverManager類:依據(jù)數(shù)據(jù)庫的不同,管理JDBC驅(qū)動。(2)Connection接口:負(fù)責(zé)連接數(shù)據(jù)庫并擔(dān)任傳送數(shù)據(jù)的任務(wù)。(3)Statement接口:由Connection接口產(chǎn)生,負(fù)責(zé)執(zhí)行SQL語句。(4)ResultSet接口:負(fù)責(zé)保存Statement語句執(zhí)行后所產(chǎn)生的查詢結(jié)果。10.2.2 JDBC應(yīng)用模型開發(fā)一個JDBC應(yīng)用程序,基本需要以下步驟:(1)把JDBC驅(qū)動類裝載入Java虛擬機(jī)中。(

11、2)加載驅(qū)動,并與數(shù)據(jù)庫建立連接。(3)發(fā)送SQL語句,并得到結(jié)果集。一旦建立連接,就使用該連接創(chuàng)建Statement接口的實例,將SQL語句傳遞給它所連接的數(shù)據(jù)庫,并返回類型為ResultSet的對象,它包含執(zhí)行SQL查詢語句的結(jié)果。(4)處理結(jié)果。使用ResultSet對象的next()方法將光標(biāo)(cursor)指向下一行。 下面給出JDBC程序的代碼模板:10.2.2 JDBC應(yīng)用模型10.3 應(yīng)用JDBC訪問數(shù)據(jù)庫10.3.1 加載JDBC驅(qū)動1JDBC-ODBC橋連不需要額外下載JDBC驅(qū)動程序,只需要配置ODBC數(shù)據(jù)源。2純Java驅(qū)動方式首先,需要下載數(shù)據(jù)庫廠商提供的驅(qū)動程序ja

12、r包,并將jar包引入工程中。10.3.2 開發(fā)任務(wù)描述案例需求: 對新聞發(fā)布系統(tǒng)中的新聞標(biāo)題進(jìn)行管理,要求如下所示。(1)新聞標(biāo)題存儲在SQL Server 2012中。(2)通過JDBC對新聞標(biāo)題進(jìn)行增、刪、改、查操作10.3.3 Statement語句 獲取Connection對象之后就可以進(jìn)行數(shù)據(jù)庫操作了。使用Connection對象,可以生成Statement實例。下面列出了執(zhí)行SQL命令的三個方法。(1)ResultSet executeQuery(String sql):可以執(zhí)行 SQL查詢語句并獲取到ResultSet對象。(2)int executeUpdate(String

13、 sql):可以執(zhí)行插入、刪除、更新等操作,返回值是執(zhí)行該操作所影響的行數(shù)。(3)boolean execute(String sql):這是一個最為一般的執(zhí)行方法,可以執(zhí)行任意SQL語句,然后獲得一個布爾值,表示是否返回ResultSet。10.3.4 PreparedStatement語句 PreparedStatement接口繼承自Statement接口,PreparedStatement對象比普通的Statement對象使用起來更加靈活,更有效率。 PreparedStatement實例包含已編譯的SQL語句,SQL語句可具有一個或多個輸入?yún)?shù)。這些輸入?yún)?shù)的值在SQL語句創(chuàng)建時未被指

14、定,而是為每個輸入?yún)?shù)保留一個問號(?)作為占位符。10.3.5 使用PreparedStatement插入數(shù)據(jù)10.3.6 使用PreparedStatement刪除數(shù)據(jù)10.3.7 使用PreparedStatement更新數(shù)據(jù)10.3.8 使用PreparedStatement查詢數(shù)據(jù)第2章初識Java程序設(shè)計學(xué)習(xí)目標(biāo)了解Java開發(fā)環(huán)境掌握J(rèn)ava語言的運行機(jī)制 了解Java虛擬機(jī)重點難點Java環(huán)境變量的配置Eclipse的使用2.1 典型案例【案例描述】使用Eclipse編寫程序,在控制臺輸出多行信息,運行結(jié)果如下所示。【運行結(jié)果】2.2 Java開發(fā)環(huán)境的搭建Java虛擬機(jī)的簡介

15、JDK的下載與安裝配置系統(tǒng)環(huán)境變量2.2.1 Java虛擬機(jī)的簡介 Java虛擬機(jī)(Java Virtual Machine,JVM)為Java語言實現(xiàn)了平臺無關(guān)性。 使用Java語言編寫的程序需要經(jīng)過Java編譯器編譯,這時會生成與平臺無關(guān)的字節(jié)碼(*.class文件)。這種字節(jié)碼是不可執(zhí)行的,必須使用JVM來解釋執(zhí)行。因此,我們無論在任何系統(tǒng)上編寫Java程序,只要該平臺安裝了JVM,便可以運行。2.2.2 JDK的下載與安裝 JDK(Java Development Kit),即Java標(biāo)準(zhǔn)開發(fā)工具箱,是Oracle公司提供一套用于開發(fā)Java應(yīng)用程序的開發(fā)工具,提供了編譯、運行Java

16、程序所需要的各種工具和資源,包括Java編譯器、Java運行環(huán)境,以及常用Java類庫等。 Java運行環(huán)境也稱為JRE(Java Runtime Environment),是運行Java程序的必要條件??梢哉fJRE里包括JVM。2.2.2 JDK的下載與安裝JDK官方下載網(wǎng)址為:/technetwork/java/javase/downloads/java- archive-downloads-javase7-521261.html#jdk-7u75-oth-JPR選擇對應(yīng)平臺的JDK進(jìn)行下載。2.2.2 JDK的下載與安裝JDK的安裝2.2.3 配置系統(tǒng)環(huán)境變量JDK安裝完成需要進(jìn)行環(huán)境變

17、量的配置。2.2.3 配置系統(tǒng)環(huán)境變量在“變量名”文本框中輸入“PATH”,在“變量值”文本框中輸入“C:Program FilesJavajdk1.7.0_75bin”。在“變量名”文本框中輸入“CLASSPATH”,在“變量值”文本框中輸入“.;C:Program FilesJavajdk1.7.0_ 75libdt.jar;C:Program FilesJavajdk1.7.0_75libtools.jar”。Java版本如果是1.5以上的只需要配置“PATH”環(huán)境變量即可,如果是Java EE仍需要配置CLASSPATH?!白兞恐怠睘镴ava的lib文件夾中tools.jar與dt.j

18、ar的路徑,但是千萬注意必須在變量值的最前面加上“.;”,不然配置不會成功。它表示當(dāng)前目錄,用于識別當(dāng)前目錄的Java類。tools.jar與dt.jar兩個路徑之間添加“;”。2.3 Eclipse集成開發(fā)工具的使用Java的集成開發(fā)工具簡介Eclipse的下載與安裝Eclipse的基本使用2.3.1 Java的集成開發(fā)工具簡介 對于初學(xué)者來說,使用JDK開發(fā)Java程序可以很快理解程序中代碼之間的關(guān)系,有利于理解Java的設(shè)計思想,在學(xué)習(xí)中可以不使用任何IDE(集成開發(fā)環(huán)境)工具來學(xué)習(xí)編程,Windows平臺可以使用記事本,Linux可以使用VI等工具。但是,倘若進(jìn)行大規(guī)模的開發(fā)時,便會顯

19、得捉襟見肘,因此,Java的集成開發(fā)工具是我們未來進(jìn)行Java學(xué)習(xí)中必不可少的工具。其中包括:Eclipse、NetBeans、JBuilder、JDeveloper等IDE工具。2.3.2 Eclipse的下載與安裝Eclipse下載地址為/downloads/,選擇符合系統(tǒng)版本的Eclipse下載。下載后解壓下載的文件。雙擊文件夾中的eclipse.exe即可進(jìn)行Java語言的開發(fā)。2.3.3 Eclipse的基本使用運行Eclipse設(shè)置Eclipse工作空間路徑在工作區(qū)創(chuàng)建新項目創(chuàng)建包、類在工作界面編寫代碼、保存、運行第3章Java程序設(shè)計基礎(chǔ)重點難點Java變量的使用Java各種運算

20、符及表達(dá)式的使用Scanner類的應(yīng)用學(xué)習(xí)目標(biāo)掌握標(biāo)識符命名規(guī)則了解Java關(guān)鍵字掌握J(rèn)ava基本數(shù)據(jù)類型掌握變量的定義及使用掌握J(rèn)ava各種運算符及表達(dá)式了解運算符的優(yōu)先級理解類型轉(zhuǎn)換的含義熟悉String及Scanner類的用法3.1 典型案例【案例描述】使用Eclipse編寫程序,從控制臺輸入一個學(xué)生三門課的成績,計算并輸出三門課的總成績與平均成績,運行結(jié)果如下圖所示?!具\行結(jié)果】3.2 Java語言組成元素Java的標(biāo)識符Java的關(guān)鍵字Java的分隔符3.2.1 Java的標(biāo)識符“標(biāo)識符”是作為標(biāo)志識別用的符號。Java語言中所有的變量、方法、類和對象等被處理的數(shù)據(jù)都是要有名稱的,標(biāo)

21、識符就是用來給這些數(shù)據(jù)命名用的符號。在Java語言中,用戶自定義標(biāo)識符必須遵守以下原則: (1)標(biāo)識符只能由數(shù)字、字母、下劃線(_)或美元符號($)構(gòu)成,并且開頭不能是數(shù)字。 (2)大寫、小寫字母被認(rèn)為是兩個不同的字符。 (3)沒有長度限制,可以為標(biāo)識符取任意長度的名字。 (4)不能和Java語言的關(guān)鍵字相同,但是它可以包含關(guān)鍵字,作為其名字的一部分。 例如: 合法標(biāo)識符:a4,china,n_xy,Q7tz,$change。 不合法標(biāo)識符:2_a,#class,float,void,No-1。3.2.2 Java的關(guān)鍵字 關(guān)鍵字是Java語言中具有專門含義和用途的特殊標(biāo)識符,不能當(dāng)作用戶的標(biāo)

22、識符使用。Java中的常見關(guān)鍵字如下表。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfinalfinallyfloatforitimplementsimportinstanceintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrow/throwstransienttryvoidvolatilewhileassertenum3.2.3

23、 Java的分隔符注釋符可以提高程序的可讀性,注釋的內(nèi)容一般起到提示編程思路或者說明程序功能的作用。注釋符有3種形式。 “/ 注釋內(nèi)容”以“/”開始的該行后面的內(nèi)容為注釋,用于單行的注釋,放在一行的開頭或語句的結(jié)尾。 “/* 注釋內(nèi)容 */”用于多行的注釋。 “/* 注釋內(nèi)容 */”用于多行的注釋。這種注釋被寫入javadoc文檔。 空白符包括空格符、回車符、換行符和制表符等。使用時,多個空白符與一個空白符的作用相同。 普通分隔符是有語法含義的,需要按照語法規(guī)定去使用。普通分隔符有以下4種。 大括號“ ”用于定義復(fù)合語句和數(shù)組的初始化以及定義類體、方法體等。 分號“;”用于結(jié)束語句。 逗號“,

24、”用于分隔變量、參數(shù)。 冒號“:”用于分隔標(biāo)號和語句。3.3 數(shù)據(jù)類型Java語言的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型3.3.1 基本數(shù)據(jù)類型3.3.2 常量與變量常量就是在程序運行過程中其值保持不變的量,即不能被程序改變的量,也把它稱為最終量。常量可分為數(shù)值常量和符號常量。數(shù)值常量就是直接出現(xiàn)在程序語句中的常量值。數(shù)值常量也有數(shù)據(jù)類型,系統(tǒng)根據(jù)數(shù)值量識別。符號常量使用一個標(biāo)識符來替代一個常量數(shù)值,其定義的一般格式為: final 數(shù)據(jù)類型 常量名= value, 常量名=value; 其中: final關(guān)鍵字,表示后邊定義的是常量,即符號常量; 數(shù)據(jù)類型常量的數(shù)據(jù)類型,它可以是基本數(shù)據(jù)

25、類型之一; 常量名標(biāo)識符,它表示常數(shù)值value,在程序中凡是用到value值的地方均可用常量名標(biāo)識符替代。注意:在程序中,為了區(qū)分常量標(biāo)識符和變量標(biāo)識符,常量標(biāo)識符一般全部使用大寫字母。3.3.2 常量與變量變量是程序中的基本組成部分,在程序的運行過程中可以隨時改變其存儲單元的值。變量定義的一般格式如下: 數(shù)據(jù)類型 變量名=value , 變量名=value ; 其中: 數(shù)據(jù)類型表示后邊定義變量的數(shù)據(jù)類型; 變量名一個標(biāo)識符,應(yīng)遵循標(biāo)識符的命名規(guī)則。 可以在說明變量的同時為變量賦初值。例如: int x1=5,x2=-8; float f1=4.4f,f2=1.325f; double d=

26、75.2;3.3.2 常量與變量沒有初始值的變量是不能使用的,否則編譯不能通過。聲明變量時如果沒有給變量賦初值,則可用賦值語句來賦初值。賦值語句格式如下: 變量名=表達(dá)式; 其功能是:計算出“表達(dá)式”的值,將其賦值給左邊的變量。注意:右邊必須是有確定值的表達(dá)式,左邊只能是已經(jīng)定義過的變量。 例如:變量的聲明與賦值。 int a; / 變量的聲明 a=70; / 變量的賦值 char c; / 變量的聲明 c=B; / 變量的賦值變量的初始化是將變量的聲明與賦值同時進(jìn)行,即邊定義邊賦值。 例如上面兩組語句可以改寫為: int a=70; /對變量a初始化 char c=B; /對變量c初始化 3

27、.3.2 常量與變量變量的作用域是指變量自定義的位置起,可以被使用的有效范圍。在程序中不同的地方定義的變量具有不同的作用域。不同的變量,作用域也不同。局部變量是在方法內(nèi)定義的變量,也稱為自動(Automatic)變量。它的作用域為它所在方法或方法中的某塊代碼,離開該方法,局部變量被清除。 在成員方法內(nèi)定義的變量是該成員方法的局部變量。在幾個成員方法中使用相同的變量名,其所代表的是不同的變量。在一個確定的域中,變量名應(yīng)該是唯一的。通常,一個域用大括號“”和“”來劃定。局部變量在方法或方法的某一塊代碼中聲明。 類變量是在類中聲明的,不是在類的方法中聲明的,顯然它的作用域是整個類。 方法參數(shù)是將數(shù)據(jù)

28、傳遞給方法的,它的作用域不能超越使用它的方法。 異常處理參數(shù)是傳遞給異常處理代碼的,其作用域就是異常處理部分。3.3.3 數(shù)據(jù)類型轉(zhuǎn)換整型、實型、字符型數(shù)據(jù)可以混合運算。當(dāng)程序中出現(xiàn)這種情況時,Java語言要進(jìn)行變量數(shù)據(jù)類型轉(zhuǎn)換,使各類型一致后,再進(jìn)行運算。在Java語言里,類型轉(zhuǎn)換有兩種:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。自動類型轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型的混合運算時,由編譯系統(tǒng)自動完成。一般情況下,系統(tǒng)自動將兩個運算數(shù)中低級的運算數(shù)轉(zhuǎn)換為和另一個較高級運算數(shù)的類型相一致的數(shù)據(jù),然后再進(jìn)行運算。自動轉(zhuǎn)換遵循以下規(guī)則: (1)若運算數(shù)的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。 (2)轉(zhuǎn)換按數(shù)據(jù)長度增

29、加的方向進(jìn)行,以保證精度不降低。(3)所有的浮點型數(shù)據(jù)運算都是以雙精度進(jìn)行的,即使僅含單精度運算的表達(dá)式,也要先轉(zhuǎn)換成double型,再進(jìn)行運算。 (4)char、short和byte型參與運算時,必須先轉(zhuǎn)換成int型。 (5)在賦值運算中,賦值號兩邊量的數(shù)據(jù)類型不同時,賦值號右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長度比左邊量的數(shù)據(jù)類型長度長,將丟失一部分?jǐn)?shù)據(jù),這樣會降低精度,丟失的部分按四舍五入向前舍入。3.3.3 數(shù)據(jù)類型轉(zhuǎn)換強制類型轉(zhuǎn)換的功能是把變量或表達(dá)式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型。其一般形式為: (類型說明符) 變量 或 (類型說明符) (表達(dá)式) (

30、類型說明符)中的“()”稱為強制類型轉(zhuǎn)換運算符。 例如: (double)a; /把a轉(zhuǎn)換為實型 (int)(x+y); /把x+y的結(jié)果轉(zhuǎn)換為整型注意: (1)在使用強制轉(zhuǎn)換時表達(dá)式必須加括號(單個變量可以不加括號)。例如:把(int)(x+y)寫成(int)x+y則表示將x轉(zhuǎn)換成int型之后再與y相加。 (2)無論是強制轉(zhuǎn)換還是自動轉(zhuǎn)換,都只是為了本次運算的需要而對變量的數(shù)據(jù)長度進(jìn)行的臨時性轉(zhuǎn)換,而不改變數(shù)據(jù)說明時對該變量定義的類型和初值。3.4 運算符與表達(dá)式 運算符與表達(dá)式是構(gòu)成程序語句的要素。Java提供了多種運算符,分別用于不同運算的處理。表達(dá)式是由操作數(shù)和運算符按一定的語法形式組

31、成的符號序列。一個常量或一個變量名是最簡單的表達(dá)式。表達(dá)式是可以計算出結(jié)果的,一個表達(dá)式肯定有一個確定類型的值。3.4.1 算術(shù)運算符及算術(shù)表達(dá)式常用的算術(shù)運算符有:+(加),-(減),*(乘),/(除),%(求余),+(自加1),-(自減1),它們用于數(shù)值量的算術(shù)運算。由算術(shù)運算符與操作數(shù)連接起來的式子稱為算術(shù)表達(dá)式。例如:x+6/y,i+,5*(a-8),(a+b)%10等。加、減、乘、除四則運算的運算規(guī)則和數(shù)學(xué)中的基本一致。說明:(1)“/”:除法運算符左右兩邊的運算數(shù)均為整型時,結(jié)果也為整型,舍去小數(shù)部分。如果兩個運算數(shù)中至少一個為實型,則結(jié)果為double型。(2)“%”:求余運算用

32、來求兩數(shù)相除后的余數(shù),如:5%3結(jié)果為2。(3)“+”:加法運算符在字符串類型中也可以使用,其功能是實現(xiàn)字符串的連接,如:hello+java的結(jié)果為hellojava。(4)“+”“-”是單目運算符,參與運算的是單個變量,它分為前置運算和后置運算,如:+i,i+,-i,i-,其功能是使i自身加1或減1,即相當(dāng)于i=i+1或i=i-1。前綴+、- 與后綴+、-有區(qū)別。+i在使用i之前使i的值加1,即i的值先加1,后使用;i+在使用i之后使i的值加1,即i的值先使用,后加1。3.4.2 關(guān)系運算符及關(guān)系表達(dá)式關(guān)系運算符用于兩個數(shù)據(jù)的比較運算,它們包括:(大于),=(大于等于),=z,(ab) !

33、= (bc)?!瓣P(guān)系”運算就是“比較”運算,它通常用來比較兩個表達(dá)式的值,根據(jù)比較的結(jié)果得出布爾類型的值true 或false。 例如:設(shè)x=100,y=60,則 (1)xy的值為true。 (2)x=y的值為false。3.4.3 邏輯運算符及邏輯表達(dá)式在程序的流程控制中,只需描述單一條件的,可以用關(guān)系表達(dá)式如“x=1”來實現(xiàn),如果需要描述“x=1”且“x10”這樣比較復(fù)雜的條件就要用到邏輯表達(dá)式了。 Java的三種邏輯運算符 &邏輯與(相當(dāng)于“并且”)|邏輯或(相當(dāng)于“或者”) !邏輯非(相當(dāng)于“否定”)運算規(guī)則 邏輯運算符的操作數(shù)和結(jié)果都是布爾型。(1)&運算的一般形式是:A & B。其

34、中:A、B是邏輯或關(guān)系表達(dá)式。若A和B的值至少有一個為false,則A&B的值為false;若A和B的值均為true,則A&B的值為true。(2)|運算的一般形式是:A | B。其中:A、B是邏輯或關(guān)系表達(dá)式。若A和B的值至少有一個為true,則A|B的值為true;若A和B的值均為false,則A|B的值為false。(3)!運算的一般形式是:!A。其中:A是邏輯或關(guān)系表達(dá)式。若A的值為true,則!A的值為false,反之為true。3.4.4 賦值運算符及賦值表達(dá)式賦值運算符是最常用的運算符,用于把一個表達(dá)式的值賦給一個變量(或?qū)ο螅R话阈问綖椋?變量=表達(dá)式賦值表達(dá)式的值為賦值號右

35、邊變量或表達(dá)式的值,例如:a=5的值為5,x=a+3的值為8,y=(a=3)+(b=8)的值為11。 Java也提供了復(fù)合的賦值運算符,包括:+=,-=,*=,/=,%=。 例如: x*=x+y; /相當(dāng)于x=x*(x+y); x+=y; /相當(dāng)于 x=x+y;3.4.5 其他運算符及表達(dá)式條件運算符是三目運算符,由條件運算符組成的表達(dá)式的一般格式為:邏輯表達(dá)式(或關(guān)系表達(dá)式)?表達(dá)式1:表達(dá)式2 其功能是:若邏輯表達(dá)式(或關(guān)系表達(dá)式)的值為true,整個式子的結(jié)果取表達(dá)式1的值,否則取表達(dá)式2的值。條件運算符及條件表達(dá)式常用于簡單分支的取值處理。對象運算符(1)構(gòu)造對象運算符(new)。ne

36、w 運算符主要用于創(chuàng)建類的對象,我們將在后邊的章節(jié)作詳細(xì)介紹。 (2)分量運算符(.)。. 運算符主要用于獲取類、對象的屬性和方法。例如可使用System類對象的輸出方法在屏幕上輸出信息:System.out.println(my first Java program);。字符串連接運算符(+) 在表達(dá)式中,如果+號運算符左右兩邊的操作數(shù)至少一個為字符串,此時該+號運算符的作用是字符串連接符。3.4.6 運算符的優(yōu)先級Java運算符的優(yōu)先次序3.4.6 運算符的優(yōu)先級在上表中優(yōu)先級為1的運算符優(yōu)先級最高,優(yōu)先級10的運算符優(yōu)先級最低。結(jié)合性是指運算符結(jié)合的順序,通常都是從左向右,也稱為左結(jié)合。

37、從右向左的運算符最典型的就是取負(fù)運算,例如3+-4,含義為3加-4,符號首先和運算符右側(cè)的內(nèi)容結(jié)合,也稱為右結(jié)合。注意區(qū)分正負(fù)號和加減號的區(qū)別。其實在實際的開發(fā)中,不需要去記憶運算符的優(yōu)先級別,也不要刻意地使用運算符的優(yōu)先級別,對于不清楚優(yōu)先級的地方可以使用小括號,這樣便于代碼的閱讀和維護(hù)。第4章程序控制語句重點難點多重if語句和switch語句的適用場合嵌套if語句的使用使用循環(huán)語句的嵌套編寫程序?qū)W習(xí)目標(biāo)掌握if條件結(jié)構(gòu)掌握if、if-else語句的格式理解多重if語句和switch語句的異同點掌握嵌套if語句的使用方法理解循環(huán)結(jié)構(gòu)的要素掌握while、do-while、for語句的格式掌握

38、循環(huán)語句的嵌套理解break和continue語句在程序中的使用場合4.1 典型案例【案例描述】使用Eclipse編寫程序,將120這20個數(shù)按照每行5個順序輸出,運行結(jié)果如下圖所示?!具\行結(jié)果】4.2 順序結(jié)構(gòu) 順序結(jié)構(gòu)是最簡單、最基本的程序控制結(jié)構(gòu),程序中的語句將自頂向下逐條執(zhí)行,即按語句的排列順序從第一條順序執(zhí)行到最后一條,且每個語句只執(zhí)行一遍,無需專門的控制語句。4.3 選擇結(jié)構(gòu)順序結(jié)構(gòu)的程序雖然能解決數(shù)據(jù)的輸入、計算和輸出等功能,但是不可能處理復(fù)雜的問題。在數(shù)據(jù)處理過程中,往往需要根據(jù)不同的情況,完成不同的處理。例如,任意輸入兩個數(shù)a和b,輸出較大的數(shù)。解決這樣的問題,就需要讓計算機(jī)

39、按照給定的條件來進(jìn)行判斷,并且根據(jù)判斷的結(jié)果選擇相應(yīng)的處理方式。實際上,這種處理方式就是要求程序本身具有一定的邏輯判斷能力和選擇能力。選擇結(jié)構(gòu)的執(zhí)行就是根據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句的物理順序來執(zhí)行。類似這種情況的處理,要使用if條件語句來實現(xiàn)。4.3.1 單一if語句單一if語句的格式如下: if (表達(dá)式) 語句;功能:若表達(dá)式的值為true,則執(zhí)行語句,否則跳過該語句。其中,語句可以是單條語句或復(fù)合語句(用大括號“”括起的多條語句)。4.3.2 if-else語句if-else語句的格式如下: if (表達(dá)式) 語句1; else 語句2; 功能:如果表達(dá)式的值為true

40、,執(zhí)行語句1,否則執(zhí)行語句2。4.3.3 多重if-else語句多重if-else語句的格式如下: if (表達(dá)式1) 語句1; else if (表達(dá)式2) 語句2; else if (表達(dá)式n-1) 語句n-1; else 語句n;這是一種多選一的多分支結(jié)構(gòu),其功能是:如果表達(dá)式i(i=1n-1)的值為true,則執(zhí)行語句i;如果所有表達(dá)式的值均為false,則執(zhí)行語句n。4.3.4 switch語句多重if-else語句是實現(xiàn)多分支選擇的語句。Java還提供了一種switch語句來實現(xiàn)“多選一”的功能。switch語句的一般格式如下: switch(表達(dá)式) case 常量1: 語句組1

41、; break; case 常量2: 語句組2; break; case 常量n-1: 語句組n-1; break; case 常量n: 語句組n; break; default: 語句組n+1; 4.3.4 switch語句表達(dá)式的值必須是int型或char型。常量i(i=1n)是對應(yīng)于表達(dá)式類型的常量值。各常量的值不能相同。語句組i(i=1n+1)可以是空語句,也可是一個或多個語句。break的作用是結(jié)束本switch結(jié)構(gòu)語句的執(zhí)行,跳到該結(jié)構(gòu)外的下一個語句執(zhí)行。先計算表達(dá)式的值,根據(jù)該值查找與之匹配的常量i,若找到,則執(zhí)行語句組i,遇到break語句后跳出switch結(jié)構(gòu),否則繼續(xù)依次執(zhí)

42、行下邊的語句組。如果沒有查找到與計算結(jié)果相匹配的常量i,則執(zhí)行default關(guān)鍵字后的語句組n+1。4.3.5 嵌套if語句多重if語句是用于多個并列條件選擇的情況。如果多個條件是遞進(jìn)關(guān)系,可以在if語句或if-else語句的“語句1”或“語句2”中再使用if語句或if-else語句,這種設(shè)計方法稱為嵌套。嵌套if語句格式如下: if(表達(dá)式) if語句; 或者 if(表達(dá)式) if-else語句; else if-else語句;4.4 循環(huán)結(jié)構(gòu)循環(huán)是我們周圍存在的最普遍的現(xiàn)象之一,許多復(fù)雜的問題往往需要做大量雷同的重復(fù)處理??梢姡h(huán)結(jié)構(gòu)是程序設(shè)計中的一個常用結(jié)構(gòu)。Java語言提供了3種循環(huán)

43、語句來實現(xiàn)循環(huán)結(jié)構(gòu)的程序設(shè)計,分別為for循環(huán)語句、while循環(huán)語句和do-while循環(huán)語句。一般情況下,for循環(huán)用于處理確定次數(shù)的循環(huán),while和do-while循環(huán)用于處理不確定次數(shù)的循環(huán)。4.4.1 while循環(huán)語句while循環(huán)的一般格式: while(表達(dá)式) /表達(dá)式為循環(huán)條件 語句組; /循環(huán)體 表達(dá)式可以是關(guān)系表達(dá)式或邏輯表達(dá)式,它產(chǎn)生一個布爾值。語句組是循環(huán)體,是要重復(fù)執(zhí)行的語句序列。當(dāng)表達(dá)式的值是true時,重復(fù)執(zhí)行循環(huán)體(語句組)操作,當(dāng)表達(dá)式的值是false時,結(jié)束循環(huán)操作,執(zhí)行while循環(huán)體下邊的程序語句。4.4.2 do-while循環(huán)語句do-whil

44、e循環(huán)的一般格式: do 語句組; / 循環(huán)體 while(表達(dá)式);while與do-while之間的差別在于:while循環(huán)先判斷表達(dá)式的值,如果表達(dá)式的值為true則執(zhí)行循環(huán)體,否則跳過循環(huán)體的執(zhí)行,因此如果一開始布爾表達(dá)式的值就為false,那么循環(huán)體一次也不被執(zhí)行;do-while循環(huán)是先執(zhí)行一次循環(huán)體,然后再判斷表達(dá)式的值,若其值為true則再次執(zhí)行循環(huán)體,否則執(zhí)行后邊的程序語句。無論布爾表達(dá)式的值如何,do-while循環(huán)都至少會執(zhí)行一次循環(huán)體語句。4.4.3 for循環(huán)語句for循環(huán)語句的一般格式如下: for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語句組; / 循環(huán)體 表達(dá)式

45、1一般用于設(shè)置循環(huán)控制變量的初始值,例如:int i=1;。表達(dá)式2一般是關(guān)系表達(dá)式或邏輯表達(dá)式,用于確定是否繼續(xù)進(jìn)行循環(huán)體語句的執(zhí)行。例如:i100;。表達(dá)式3一般用于循環(huán)控制變量的增減值操作。例如:i+;。語句組是要被重復(fù)執(zhí)行的語句,稱為循環(huán)體。語句組可以是空語句、單個語句或多個語句。4.4.4 循環(huán)語句的嵌套如果一個循環(huán)語句的循環(huán)體中又包含一個循環(huán)語句,則稱之為循環(huán)語句的嵌套,也稱為多重循環(huán)。前面學(xué)習(xí)的三種循環(huán)語句,每一種語句的循環(huán)體部分都可以再包含循環(huán)語句,所以多重循環(huán)很容易實現(xiàn)。循環(huán)的嵌套,按照嵌套層數(shù),分別稱為二重循環(huán)、三重循環(huán)等。處于內(nèi)部的循環(huán)稱為內(nèi)循環(huán),處于外部的循環(huán)稱為外循環(huán)

46、。執(zhí)行過程以二重循環(huán)為例。從最外層開始執(zhí)行,外循環(huán)變量每取一個值,就判斷一次循環(huán)條件,如果為真,內(nèi)循環(huán)就執(zhí)行一次循環(huán)體,內(nèi)循環(huán)結(jié)束后,再回到外循環(huán),外循環(huán)變量取下一個值,如果循環(huán)條件依然為真,內(nèi)循環(huán)又開始執(zhí)行一次循環(huán)體。依此類推,直到外循環(huán)結(jié)束。 第5章數(shù)組與字符串學(xué)習(xí)目標(biāo)掌握一維數(shù)組的聲明、分配空間的方法,熟練使用一維數(shù)組解決實際問題掌握二維數(shù)組的聲明、分配空間和使用方法,熟悉二維數(shù)組輸入/輸出方法掌握字符串常量對象的創(chuàng)建和使用方法掌握字符串的一些常用方法,并能熟練運用這些方法解決相關(guān)問題理解String類和StringBuffer類的區(qū)別,并能進(jìn)行實際應(yīng)用重點難點一維數(shù)組的實際應(yīng)用Stri

47、ng類和StringBuffer類的區(qū)別及使用5.1 典型案例【案例描述】使用Eclipse編寫程序,從控制臺輸入10個學(xué)生Java課程的成績,計算并輸出這10個學(xué)生的平均成績及最高分與最低分,運行結(jié)果如下圖所示?!具\行結(jié)果】5.2 一維數(shù)組 數(shù)組是一種構(gòu)造類型。數(shù)組中的每個元素都具有相同的數(shù)據(jù)類型,且可以用數(shù)組名和下標(biāo)來唯一地確定。數(shù)組是有序數(shù)據(jù)的集合。和其他變量一樣,數(shù)組必須先聲明定義,然后賦值,最后再使用。5.2.1 一維數(shù)組的聲明一維數(shù)組聲明的一般格式如下:數(shù)據(jù)類型 數(shù)組名 ; 或 數(shù)據(jù)類型 數(shù)組名;數(shù)據(jù)類型說明數(shù)組元素的類型,可以是Java中任意的數(shù)據(jù)類型。數(shù)組名是一個標(biāo)識符,應(yīng)遵照

48、標(biāo)識符的命名規(guī)則。 例如:int a; /聲明一個整型的一維數(shù)組a 若數(shù)組的類型一樣,則可以一次定義多個數(shù)組。 例如:int x,y,z;Java語言在對數(shù)組進(jìn)行聲明時,并不會為數(shù)組分配存儲空間。因此在對數(shù)組進(jìn)行聲明時,是不允許指明數(shù)組長度的,而且聲明后的數(shù)組必須通過分配存儲空間來創(chuàng)建數(shù)組對象后,才可以訪問數(shù)組中的元素。5.2.2 一維數(shù)組的初始化一般情況下,使用new運算符定義數(shù)組大小,格式如下: 數(shù)組名= new 數(shù)據(jù)類型size; size指數(shù)組的長度。 例如:int array1 ; /聲明一個整型數(shù)組 array1 = new int5; /定義數(shù)組可以存放5個整型元素 此時,整型數(shù)

49、組array1的長度為5,即包含5個整型數(shù)組元素:array10、array11、array12、array13、array14。每一個元素都可以存放一個整型的數(shù)據(jù),相當(dāng)于5個整型變量。當(dāng)用new關(guān)鍵字為一個數(shù)組分配內(nèi)存空間后,可以為每個數(shù)組元素賦值,例如:array10=1; /數(shù)組下標(biāo)從0開始 array11=2; array12=3; array13=4; array14=5;通常也可以采用如下方式為數(shù)組元素賦初值并由初值的個數(shù)確定數(shù)組的大小。int array1 =1,2,3,4,5; 上述語句聲明并創(chuàng)建了數(shù)組array1,并且為數(shù)組中的每個元素賦值,使得array10=1,array

50、11=2,array12=3,array13=4,array14=5。系統(tǒng)將根據(jù)所給初值的個數(shù)計算出數(shù)組的長度并分配相應(yīng)的存儲空間。5.2.3 訪問一維數(shù)組數(shù)組元素的使用 為數(shù)組分配好內(nèi)存空間后,就可以像普通數(shù)據(jù)類型的變量一樣在程序中使用數(shù)組元素,即可以在任何允許使用變量的地方使用數(shù)組元素。數(shù)組元素的訪問方式為: 數(shù)組名下標(biāo);下標(biāo)可以為整型常量或表達(dá)式,下標(biāo)值從0開始。數(shù)組是作為對象處理的,它具有長度(length)屬性,用于指明數(shù)組中包含的元素個數(shù)。因此數(shù)組的下標(biāo)從0開始到length-1結(jié)束。如果在引用數(shù)組元素時,下標(biāo)超出了此范圍,系統(tǒng)將產(chǎn)生數(shù)組下標(biāo)越界異常(ArrayIndexOutOf

51、BoundsException)。5.2.3 訪問一維數(shù)組 數(shù)組的使用 -當(dāng)數(shù)組創(chuàng)建后,數(shù)組名就存儲了數(shù)組存儲空間的起始地址,也可以使用該數(shù)組名給其他同類數(shù)組名賦值,這樣使得多個數(shù)組共享一組內(nèi)存空間和數(shù)據(jù)。 5.3 多維數(shù)組 在Java語言中,多維數(shù)組是建立在一維數(shù)組基礎(chǔ)之上的,以二維數(shù)組為例,可以把二維數(shù)組的每一行看作是一個一維數(shù)組,因此可以把二維數(shù)組看作是以一維數(shù)組為元素的數(shù)組。同樣也可以把三維數(shù)組看作二維數(shù)組的數(shù)組,依此類推。在通常的應(yīng)用中一維、二維數(shù)組最為常見,多維數(shù)組只應(yīng)用于特殊的場合。5.3.1 二維數(shù)組的聲明聲明二維數(shù)組的一般格式如下:數(shù)據(jù)類型 數(shù)組名 ; 或 數(shù)據(jù)類型 數(shù)組名;

52、數(shù)據(jù)類型可以是Java中的任意數(shù)據(jù)類型。例如: int a; /聲明一個整型的二維數(shù)組a double b; /聲明一個實型的二維數(shù)組b 注意:和一維數(shù)組類似,二維數(shù)組的聲明只是說明了二維數(shù)組元素的數(shù)據(jù)類型,并沒有為其分配存儲空間。5.3.2 二維數(shù)組的初始化二維數(shù)組初始化也是為數(shù)組元素指定初始值,同時為數(shù)組分配相應(yīng)的內(nèi)存空間??梢圆捎萌缦碌姆绞健?先聲明后定義最后再賦值 例如: int matrix; /聲明整型二維數(shù)組matrix matrix = new int33; /定義matrix包含33=9個元素 matrix00=1; /為第1個元素賦值 matrix01=2; /為第2個元素

53、賦值 matrix22=9; /為第9個元素賦值直接定義大小后賦值 例如: int matrix=new int33; matrix00=1; /為第1個元素賦值 matrix22=9; /為第9個元素賦值由初始化值的個數(shù)確定數(shù)組的大小 在元素個數(shù)較少并且初值已確定時通常采用如下方式賦值: int matrix=1,2,3,4,5,6,7,8,9; /由初值個數(shù)確定3行3列5.3.3 訪問二維數(shù)組 二維數(shù)組在分配好內(nèi)存空間后,可以像一維數(shù)組一樣使用。每個數(shù)組元素的識別方式都是: 數(shù)組名下標(biāo)1 下標(biāo)2; 其中,下標(biāo)1和下標(biāo)2與一維數(shù)組的下標(biāo)要求是一樣的。5.4 數(shù)組的應(yīng)用排序數(shù)組冒泡排序搜索數(shù)組

54、折半查找 5.4.1 排序數(shù)組 將下面的數(shù)列排序:5 4 3 8 2。將相鄰兩個數(shù)進(jìn)行比較,不斷地將小數(shù)調(diào)到前面。第1趟排序后結(jié)果為:4 3 5 2 8??梢钥闯觯?趟排序后最大值已經(jīng)沉底,得到我們預(yù)想的結(jié)果,它將不會參與下一趟排序。第2趟排序后結(jié)果為:3 4 2 5 8。依此繼續(xù),共進(jìn)行4趟排序,就可以完成對5個數(shù)的冒泡排序。 5.4.2 搜索數(shù)組 折半查找是一種在有序數(shù)組中查找某一特定元素的搜索算法。搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較

55、。如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。5.5 字符串的應(yīng)用字符串是字符的序列,字符串中可以包含字母、數(shù)字和其他各種特殊字符,如 +、?、*、/等。在Java語言中字符串是被當(dāng)作對象來處理的,它提供了一系列的字符串操作方法,使字符串的處理更加簡單和規(guī)范。 Java語言的java.lang包中封裝了final類String和StringBuffer。其中String類的對象是字符串常量,建立后不能改變其值。而StringBuffer類的對象類似于一個字符緩沖區(qū),建立后其值可以修改。5.5.1 字符數(shù)組 字符數(shù)組中的每個元素都是char類型的數(shù)據(jù),它的創(chuàng)

56、建方法與一般數(shù)組相似。字符數(shù)組的聲明和創(chuàng)建 例如:char a=new char8; 該語句聲明并創(chuàng)建了字符數(shù)組a,數(shù)組中可以存儲8個字符。字符數(shù)組可以被初始化 例如:char a=g,i,r,l; 其中,a是一個字符數(shù)組,共有4個元素,a0為g,a1為i,a2為r,a3為l。也可以通過for語句給字符數(shù)組循環(huán)賦值 例如:char a=new char50; for( int i=0;i26;i+); ai=A+i; 上述循環(huán)語句執(zhí)行后,數(shù)組a中存放了26個大寫英文字母。5.5.1 字符數(shù)組字符串不是字符數(shù)組,但是可以轉(zhuǎn)換為字符數(shù)組,反之亦然。字符串和字符數(shù)組之間的轉(zhuǎn)換有以下兩種方式。(1)字

57、符串轉(zhuǎn)換為字符數(shù)組toCharArray()方法。例如:將字符串“school”中的字符轉(zhuǎn)換為數(shù)組a中的數(shù)組元素。char a=school.toCharArray();(2)字符數(shù)組轉(zhuǎn)換為字符串String(char )構(gòu)造方法或者valueOf(char )方法。例如:String str=new String(new char j,a,v,a ); String str=String.valueOf(new char j,a,v,a );5.5.2 String類的使用在Java中,每個字符串常量對應(yīng)一個String類的對象,String類是字符串常量類,它用于生成字符串對象,Strin

58、g對象建立后不能修改。String類提供了如下一些常用的構(gòu)造方法用來構(gòu)造字符串對象: (1)String():構(gòu)造一個空的字符串對象。 (2)String(char chars ):以字符數(shù)組chars的內(nèi)容構(gòu)造一個字符串對象。 (3)String(char chars , int startIndex, int numChars):以字符數(shù)組chars中從startIndex位置開始的numChars個字符構(gòu)造一個字符串對象。5.5.2 String類的使用String類也提供了眾多的方法用于操作字符串,以下列出一些常用的方法:(1)public int length():返回字符串的字符個

59、數(shù)。(2)public char charAt(int index):返回字符串中index位置上的字符,其中index值的范圍是0length-1。(3)public int indexOf(char ch):返回字符ch在字符串中第一次出現(xiàn)的位置。(4)public int lastIndexOf(char ch):返回字符ch在字符串中最后一次出現(xiàn)的位置。(5)public int indexOf(String str):返回子串str在字符串中第一次出現(xiàn)的位置。(6)public int lastIndexOf(String str):返回子串str在字符串中最后一次出現(xiàn)的位置。 (7

60、)public String substring(int beginIndex):返回字符串中從beginIndex位置開始的子串。5.5.2 String類的使用String類也提供了眾多的方法用于操作字符串,以下列出一些常用的方法:(8)public String substring(int beginIndex, int endIndex):返回字符串中從beginIndex位置開始到endIndex位置(不包括該位置)結(jié)束的子串。(9)public String contact(String str):用來將當(dāng)前字符串與給定字符串str連接起來。(10)public String re

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論