《程序設(shè)計(jì)基礎(chǔ)(Java)》高職全套教學(xué)課件_第1頁
《程序設(shè)計(jì)基礎(chǔ)(Java)》高職全套教學(xué)課件_第2頁
《程序設(shè)計(jì)基礎(chǔ)(Java)》高職全套教學(xué)課件_第3頁
《程序設(shè)計(jì)基礎(chǔ)(Java)》高職全套教學(xué)課件_第4頁
《程序設(shè)計(jì)基礎(chǔ)(Java)》高職全套教學(xué)課件_第5頁
已閱讀5頁,還剩160頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

程序設(shè)計(jì)基礎(chǔ)(Java)項(xiàng)目1初識Java項(xiàng)目2Java語言基礎(chǔ)項(xiàng)目3流程控制項(xiàng)目4數(shù)組項(xiàng)目5字符串項(xiàng)目6類與對象項(xiàng)目7常用的JavaAPI項(xiàng)目8異常處理項(xiàng)目9輸入輸出與文件處理全套可編輯PPT課件

項(xiàng)目一

初識Java任務(wù)1Java語言簡介任務(wù)2搭建Java開發(fā)環(huán)境全套可編輯PPT課件

任務(wù)1Java語言簡介任務(wù)引入小白是某大學(xué)計(jì)算機(jī)學(xué)院的一名學(xué)生,了解到Java工程師就業(yè)前景非常好,想自學(xué)Java編程。Java究竟是一門什么樣的編程語言?與其他常見的高級語言相比有什么優(yōu)勢呢?Java根據(jù)應(yīng)用環(huán)境不同提供了不同的版本,該如何選擇合適的版本呢?知識準(zhǔn)備一、發(fā)展歷程上個世紀(jì)90年代初,個人計(jì)算機(jī)的應(yīng)用對人們產(chǎn)生了極大的沖擊,同時也改變了人們對于組織及商務(wù)的管理方式。美國SunMicrosystems公司由此成立了一個名為Green的內(nèi)部研究計(jì)劃,意在針對像有線電視轉(zhuǎn)換盒這類處理能力和內(nèi)存都很有限的消費(fèi)設(shè)備,設(shè)計(jì)一種小型的計(jì)算機(jī)語言,開發(fā)小型家電設(shè)備的嵌入式應(yīng)用。隨著互聯(lián)網(wǎng)的崛起,Sun公司看到了制作動態(tài)網(wǎng)頁的潛在發(fā)展商機(jī),改造了Oak。如今,Java已發(fā)展成為一種面向?qū)ο蟆⒖缙脚_、可移植性高的編程語言。二、特性和優(yōu)勢Java語言具有面向?qū)ο?、與平臺無關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,特別適用于網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì),已經(jīng)成為網(wǎng)絡(luò)時代重要的編程語言之一。簡單性

面向?qū)ο?/p>

跨平臺/可移植性

安全性高性能

分布式

多線程

健壯性三、體系結(jié)構(gòu)JavaSE(JavaStandardEdition)稱為標(biāo)準(zhǔn)版,定位為桌面級的應(yīng)用和數(shù)據(jù)庫的開發(fā)。JavaEE(JavaEnterpriseEdition)稱為企業(yè)版,定位為服務(wù)器端的應(yīng)用。JavaME(JavaMicroEdition)稱為微型版,定位為消費(fèi)性電子產(chǎn)品的應(yīng)用四、認(rèn)識JDK,JRE和JVMJDK是JavaDevelopmentKit的縮寫,也就是Java開發(fā)工具包,除了包含JRE,還提供了編譯器、調(diào)試器等開發(fā)工具。JRE是JavaRuntimeEnvironment的縮寫,是Java的運(yùn)行環(huán)境,包含JVM和Java核心類庫。JVM是Javavirtualmachine的縮寫,也就是常常聽到Java虛擬機(jī),是整個Java實(shí)現(xiàn)跨平臺的最核心的部分。簡單地說,JDK是面向開發(fā)者的,是程序員編寫Java程序使用的軟件。Java三個版本之間的關(guān)系任務(wù)2搭建Java開發(fā)環(huán)境任務(wù)引入了解了Java的特性,以及在服務(wù)器端應(yīng)用和網(wǎng)絡(luò)應(yīng)用方面的優(yōu)勢,小白頓時來了興致,這與他畢業(yè)后的職業(yè)選擇方向很契合。說學(xué)就學(xué),學(xué)Java程序設(shè)計(jì)的首要任務(wù)當(dāng)然是搭建Java的開發(fā)環(huán)境。知識準(zhǔn)備一、下載、安裝JDKJava程序必須運(yùn)行在JVM之上,所以,要學(xué)習(xí)Java開發(fā),首先要安裝JDK。JDK包括用于開發(fā)和測試用Java編程語言編寫并在Java平臺上運(yùn)行的程序的工具。本書使用的Java版本是JavaSE平臺的最新長期支持(LTS)版本Java17。(1)登錄Oracle公司官網(wǎng),下載JavaSE的最新穩(wěn)定版。(2)下載完成后,雙擊下載的文件啟動安裝向?qū)?,如圖所示。(3)單擊“下一步”按鈕,選擇安裝JavaSE的目標(biāo)文件夾,如圖所示。(4)單擊“下一步”按鈕,開始安裝程序,并顯示進(jìn)度條。安裝完成后,顯示如圖所示的完成界面。安裝向?qū)е付繕?biāo)文件夾(5)如果不需要訪問JDK的官方文檔,單擊安裝向?qū)е械摹瓣P(guān)閉”按鈕,即可完成安裝。(6)按住鍵盤上的Windows鍵+R鍵,打開如圖所示的“運(yùn)行”對話框。輸入命令cmd按Enter鍵,啟動控制臺。二、使用JDK文檔Oracle公司為JDK工具包提供了一整套文檔資料,稱之為JDK文檔。在安裝JDK完成時,單擊安裝向?qū)е械摹昂罄m(xù)步驟”按鈕,將打開瀏覽器,顯示當(dāng)前JDK版本的官方文檔,包括教程、API文檔、開發(fā)人員指南、發(fā)布說明及更多的相關(guān)資源,如圖所示?!斑\(yùn)行”對話框查看安裝的JDK版本JDK文檔下載離線文檔文檔結(jié)構(gòu)三、JDK文件結(jié)構(gòu)JavaSE17安裝完成后,打開安裝目錄,可以看到如圖所示的文件目錄。bin文件夾文件結(jié)構(gòu)下面簡要介紹幾個很重要的可執(zhí)行程序。vjava.exe:這個可執(zhí)行程序其實(shí)就是JVM,運(yùn)行Java程序。vjavac.exe:Java的編譯器,用于把Java源碼文件(以.java為后綴)編譯為Java字節(jié)碼文件(以.class為后綴)。vjar.exe:打包工具,用于把一組.class文件打包成一個.jar文件,便于發(fā)布。vjavadoc.exe:文檔生成器,用于從Java源碼中自動提取注釋并生成文檔。vjdb.exe:Java調(diào)試器,用于開發(fā)階段的運(yùn)行調(diào)試。四、配置JDK安裝完JDK后,必須配置系統(tǒng)環(huán)境變量才能使用Java開發(fā)環(huán)境。(1)在桌面上右擊“此電腦”,從彈出的快捷菜單中選擇“屬性”命令,然后在打開的“系統(tǒng)”對話框的左側(cè)窗格中單擊“高級系統(tǒng)設(shè)置”鏈接,打開“系統(tǒng)屬性”對話框,如圖1-12所示。(2)單擊“系統(tǒng)屬性”對話框底部的“環(huán)境變量”按鈕,打開如圖1-13所示的“環(huán)境變量”對話框。

“系統(tǒng)屬性”對話框

“環(huán)境變量”對話框(3)在“系統(tǒng)變量”列表框中雙擊Path變量,打開如圖所示的“編輯環(huán)境變量”對話框。(4)單擊“編輯文本”按鈕打開“編輯系統(tǒng)變量”對話框,在“變量值”文本框中,將路徑C:\ProgramFiles\CommonFiles\Oracle\Java\javapath修改為JDK的安裝路徑(例如C:\ProgramFiles\Java\jdk-17.0.1\)的bin文件夾,如圖所示?!熬庉嫮h(huán)境變量”對話框(5)單擊“確定”按鈕依次退出上述對話框,即完成了JDK的環(huán)境配置。JDK的Path配置成功JDK的編譯器信息案例——使用命令行工具編譯和運(yùn)行程序搭建好JDK環(huán)境,就可以編譯、運(yùn)行Java程序了。(1)打開記事本,輸入代碼:(2)將文件以文件名Hello.java保存到D:\java_source\目錄下。這里一定要注意文件的后綴.java,表示這是一個java源程序文件。(3)使用Windows+R組合鍵打開“運(yùn)行”對話框,輸入命令cmd,如圖所示,按Enter鍵進(jìn)入命令符提示窗口。(4)在命令符提示窗口輸入DOS命令,將工作目錄切換到j(luò)ava文件所在的目錄,然后輸入命令“javacHello.java”編譯程序,如圖所示。編譯成功后,在源程序文件所在目錄可以看到生成的字節(jié)碼文件Hello.class,如圖所示?!斑\(yùn)行”對話框編譯程序 生成字節(jié)碼文件(5)在命令符提示窗口輸入命令“javaHello”運(yùn)行程序,按Enter鍵即可輸出運(yùn)行結(jié)果,如圖所示。五、下載集成開發(fā)環(huán)境EclipseEclipse的發(fā)行版提供了預(yù)打包的開發(fā)環(huán)境,包括Java、JavaEE、C++、PHP、Rust等。開發(fā)Java應(yīng)用,需要下載的版本是EclipseIDEforJavaDevelopers。(1)登錄Eclipse官網(wǎng)的下載頁面/downloads/,單擊如圖所示的“DownloadPackages”鏈接文本。(2)在打開的頁面中,找到EclipseforJavaDevelopers,然后根據(jù)操作系統(tǒng)選擇對應(yīng)的下載鏈接,如圖所示。(3)在打開的下載頁面單擊“Download”按鈕,即可開始下載Eclipse的壓縮包,如圖所示。(4)下載完成后,將壓縮包解壓縮到合適的目錄下,無須安裝就可使用了。選擇語言包版本

選擇要下載的語言包覆蓋兩個同名文件夾六、配置Eclipse工作空間下載并解壓縮后,要正常使用Eclipse,還需要對IDE環(huán)境進(jìn)行一些基本配置。(1)雙擊解壓縮文件中的eclipse.exe文件,啟動Eclipse,彈出如圖所示的“EclipseIDE啟動程序”對話框。(2)單擊“瀏覽”按鈕,設(shè)置開發(fā)環(huán)境的工作空間。(3)單擊“啟動”按鈕,即可啟動Eclipse。初次啟動時,會顯示如圖1-29所示的歡迎界面?!癊clipseIDELauncher”對話框歡迎界面(4)在菜單欄選擇“Window”→“Preferences”命令,打開“Preferences”對話框。(5)拖動對話框右側(cè)的滾動條,定位到Workspace選項(xiàng)界面的“Textfileencoding”選項(xiàng)

設(shè)置Workspace選項(xiàng)設(shè)置編碼和換行符(6)在左側(cè)窗格中選中Java→Compiler選項(xiàng),取消選中“Usedefaultcompliancesettings”復(fù)選框,并勾選“EnablepreviewfeaturesforJava17”復(fù)選框,如圖所示(7)設(shè)置完成后,單擊“ApplyandClose”按鈕應(yīng)用設(shè)置并關(guān)閉對話框。案例——使用Eclipse編譯和運(yùn)行程序(1)啟動Eclipse,關(guān)閉歡迎界面,進(jìn)入Eclipse的工作界面,如圖所示。(2)單擊“PackageExplorer”窗格中的“CreateaJavaproject”鏈接文本,或者在“PackageExplorer”窗格的空白處右擊,從彈出的快捷菜單中選擇“New”→“JavaProject”命令,打開“NewJavaProject”對話框。Eclipse工作界面“NewJavaProject”對話框(3)單擊“Finish”按鈕,打開“Newmodule-info.java”對話框,如圖所示。(4)單擊“Don’tCreate”按鈕關(guān)閉對話框,即可完成Java項(xiàng)目的創(chuàng)建。創(chuàng)建的Java項(xiàng)目(5)在src目錄上右擊,從彈出的快捷菜單中選擇“New”→“Class”命令,打開“NewJavaClass”對話框。創(chuàng)建類(6)單擊“Finish”按鈕,即可創(chuàng)建Hello類。(7)在編輯器中編輯main()方法的代碼,例如在控制臺輸出文本“HelloWorld!”,如圖所示。在編輯過程中,Eclipse會同時進(jìn)行編譯工作,生成的.class文件在項(xiàng)目的bin目錄下可以看到,如圖所示。創(chuàng)建的類文件編輯類文件

生成的.class文件(8)在工具欄中單擊“Run”→“RunAs”→“JavaApplication”命令,如圖所示(9)運(yùn)行結(jié)束后,在編輯器下方的“Console”窗格中可以看到運(yùn)行結(jié)果,如圖所示?!癝aveandLaunch”對話框

運(yùn)行結(jié)果項(xiàng)目總結(jié)項(xiàng)目二

Java語言基礎(chǔ)任務(wù)1Java基本語法任務(wù)2語法規(guī)則任務(wù)1Java基本語法任務(wù)引入作為一名計(jì)算機(jī)學(xué)院的學(xué)生,小白雖然已接觸過一些簡單的編程語言,但畢竟不同語言之間,編碼規(guī)則也不盡相同。為此,小白覺得有必要先弄明白Java的程序結(jié)構(gòu)、標(biāo)識符的命名規(guī)則、常用的關(guān)鍵字、常量與變量的定義方法,以及代碼注釋等基本語法。知識準(zhǔn)備一、程序結(jié)構(gòu)Java程序由類組成,后綴為.java。一個完整的Java程序可包含若干個類,最簡單的Java程序只包含一個類二、標(biāo)識符在編寫程序時,常常要使用一些符號名稱定義類名、常量和變量名、方法名、參數(shù)名等,這些符號名稱就是標(biāo)識符。Java的標(biāo)識符是由字母、數(shù)字、下劃線(_)和美元符號($)按任意順序組成的字符序列,不能以數(shù)字開頭,且區(qū)分大小寫,也不能是Java中的保留關(guān)鍵字。三、關(guān)鍵字Java關(guān)鍵字是指被Java語言賦予了特殊含義,用作專門用途的單詞,也稱為保留字。不能用作標(biāo)識符。目前,Java語言中的關(guān)鍵字如表所示。四、常量與變量在程序設(shè)計(jì)語言中,常量和變量都是用于存儲數(shù)據(jù)的容器,它們唯一的區(qū)別是:常量中存放的值不允許更改,而變量中所存放的值是可以更改的。1.常量在Java語言中,利用關(guān)鍵字final定義常量。2.變量變量是為存儲數(shù)據(jù)而創(chuàng)建的標(biāo)識符,可為函數(shù)和語句提供可變的參數(shù)值。案例——輸出變量的值本案例通過輸出變量的值,演示變量的定義和使用方法。(1)在Eclipse中新建一個Java項(xiàng)目varDemo,右擊src目錄,新建一個名為varTest的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件varTest.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。五、代碼注釋注釋是使用一些簡單易懂的語言對代碼進(jìn)行簡單的解釋的方法。在程序中添加注釋可以增強(qiáng)代碼的可讀性,便于理解代碼。使用注釋還可以注銷不希望參與執(zhí)行的代碼。注釋的語句在程序執(zhí)行時會被編譯器忽略,對代碼執(zhí)行沒有影響。Java語言中包含了三種注釋符:(1)單行注釋符://(2)多行注釋符:/*要注釋的內(nèi)容*/(3)文檔注釋符:/**要注釋的內(nèi)容*/任務(wù)2語法規(guī)則任務(wù)引入了解了基本語法,小白試著寫一段簡單的加法運(yùn)算程序,但總是出錯,要么提示類型不匹配,要么就是數(shù)值超出某個類型的范圍。同樣是數(shù)值運(yùn)算,為什么有的能運(yùn)行成功,有的就無法編譯呢?通過查閱資料,小白這才知道Java中的數(shù)據(jù)有嚴(yán)格的類型要求,即使是常用的整數(shù)類型,也有多種不同的類型,對應(yīng)不同的取值范圍。因此,要寫出合法的程序,還需要掌握具體的語法規(guī)則。知識準(zhǔn)備在編寫程序時,會用到很多不同類型的數(shù)據(jù),Java是一種強(qiáng)類型語言,每個變量都必須聲明其數(shù)據(jù)類型。Java的數(shù)據(jù)類型可分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(也稱為對象數(shù)據(jù)類型),每種分類中又包括多種數(shù)據(jù)類型,如圖所示。一、基本數(shù)據(jù)類型Java語言中的基本數(shù)據(jù)類型包括整數(shù)類型、浮點(diǎn)類型、字符類型和布爾類型(也稱為邏輯類型)。1.整數(shù)類型整數(shù)類型顧名思義,就是存儲整數(shù)的類型,按照存儲值的范圍不同,Java語言將整型分成了byte、short、int、long四種類型,默認(rèn)為int,如表所示。案例——整型變量示例(1)在Eclipse中新建一個Java項(xiàng)目IntVarDemo,右擊src目錄,新建一個名為IntVar的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件IntVar.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。2.浮點(diǎn)類型浮點(diǎn)類型是指小數(shù)類型,在Java語言中有兩種浮點(diǎn)數(shù),一種稱為單精度浮點(diǎn)類型(float),一種稱為雙精度浮點(diǎn)類型(double)。具體取值范圍如表所示。3.字符類型字符類型(char)表示16位Unicode字符,只能存入一個字符,占用兩個字節(jié),能存放一個漢字。char類型的字符要使用單引號括起來,例如'M'、'數(shù)'等。默認(rèn)值為空格。常用的轉(zhuǎn)義字符如表所示。4.布爾類型當(dāng)某個值只有兩種狀態(tài)時,可以將其聲明為布爾類型(也稱為邏輯類型),例如,用戶權(quán)限是否為管理員、當(dāng)前日期是否為工作日等。案例——判斷用戶是否為VIP會員(1)在Eclipse中新建一個Java項(xiàng)目BooleanDemo,右擊src目錄,新建一個名為BooleanTest的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件BooleanTest.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,在控制臺窗格中輸入數(shù)值3500,按Enter鍵可以看到輸出結(jié)果,如圖所示。二、類型轉(zhuǎn)換Java是一種強(qiáng)類型語言,在賦值運(yùn)算或者算數(shù)運(yùn)算時,要求數(shù)據(jù)類型一致。如果要將一種數(shù)據(jù)類型的值賦給另一種數(shù)據(jù)類型的變量,就要進(jìn)行類型的轉(zhuǎn)換。Java中的類型轉(zhuǎn)換有兩種:自動轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。1.自動轉(zhuǎn)換自動轉(zhuǎn)換也稱為隱式類型轉(zhuǎn)換,是指兩種數(shù)據(jù)類型在轉(zhuǎn)換過程中不需要顯式地通過代碼進(jìn)行聲明。(1)整數(shù)類型之間。(2)整數(shù)類型轉(zhuǎn)換為float類型,byte、short、char、int類型的數(shù)據(jù)可以賦值給float類型的變量。(3)其他數(shù)值類型轉(zhuǎn)換為double類型,byte、short、char、int、long和float類型的數(shù)據(jù)都可以賦值給double類型的變量。2.強(qiáng)制轉(zhuǎn)換如果要把高精度的數(shù)據(jù)賦值給低精度的變量,則需要進(jìn)行顯式的代碼聲明,也就是進(jìn)行強(qiáng)制類型轉(zhuǎn)換(也稱為顯式類型轉(zhuǎn)換)。案例——數(shù)據(jù)類型轉(zhuǎn)換示例(1)在Eclipse中新建一個Java項(xiàng)目TransferDemo,右擊src目錄,新建一個名為TransferTest的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件TransferTest.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,即可在控制臺窗格中看到輸出結(jié)果,如圖所示。三、運(yùn)算符運(yùn)算符是每一種編程語言中必備的符號,能夠提供對數(shù)值、字符、邏輯值進(jìn)行運(yùn)算。表達(dá)式是由常量、變量、函數(shù)和運(yùn)算符按照運(yùn)算法則組成的計(jì)算關(guān)系式。在數(shù)據(jù)運(yùn)算中,使用表達(dá)式表達(dá)想要達(dá)到的效果,使用運(yùn)算符進(jìn)行相關(guān)的運(yùn)算。下面簡要介紹Java中常見的運(yùn)算符:賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、三元運(yùn)算符以及運(yùn)算符的優(yōu)先級。1.賦值運(yùn)算符賦值運(yùn)算符(=)是最常用的運(yùn)算符,它的含義是將右邊的值賦值給左邊的變量,經(jīng)常用于對屬性、變量、方法屬性的賦值操作。表

賦值運(yùn)算符2.算術(shù)運(yùn)算符算術(shù)運(yùn)算符是最常用的一類運(yùn)算符,包括加法、減法、乘法、除法等,具體的表示符號如表所示。3.邏輯運(yùn)算符邏輯運(yùn)算符主要用于多個布爾型表達(dá)式之間的運(yùn)算,用于判斷某個條件是否成立,運(yùn)算的結(jié)果也為布爾型。具體說明如表所示。4.關(guān)系運(yùn)算符關(guān)系運(yùn)算符常用于條件判斷語句,比較兩個操作數(shù)的值,運(yùn)算的結(jié)果是布爾值true或false。常見的關(guān)系運(yùn)算符可分為兩類:一類用于判斷大小關(guān)系,一類用于判斷相等關(guān)系。具體的說明如表所示。5.位運(yùn)算符位運(yùn)算符包括與、或、非、左移、右移等,具體的表示符號如表所示。6.三元運(yùn)算符Java中有一個三元運(yùn)算符,也被稱為條件運(yùn)算符,顧名思義,也就是有三個運(yùn)算項(xiàng),具體的語法形式如下:案例——計(jì)算絕對值(1)在Eclipse中新建一個Java項(xiàng)目ABSDemo,右擊src目錄,新建一個名為ABSTest的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件ABSest.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,根據(jù)提示輸入一個整數(shù),按Enter鍵即可在控制臺窗格中輸出指定數(shù)值的絕對值,如圖示。7.運(yùn)算符的優(yōu)先級在Java表達(dá)式中,通常會使用多個運(yùn)算符進(jìn)行計(jì)算,這種情況下就要注意運(yùn)算符的運(yùn)算先后順序,也就是優(yōu)先級。Java語言中運(yùn)算符的優(yōu)先級從高到低如表所示。四、輸入與輸出編寫程序后,要查看代碼是否按預(yù)期計(jì)算運(yùn)行,通常會輸入測試參數(shù),然后輸出運(yùn)行結(jié)果。在前面的案例中,都是使用語句System.out.println()方法輸出運(yùn)行結(jié)果。System是一個系統(tǒng)類,完整類名為java.lang.System。所有的Java程序都會自動導(dǎo)入java.lang核心語言包,因此在使用System類時無須顯式導(dǎo)入。System.out在JRE啟動時,被初始化為標(biāo)準(zhǔn)輸出對象,調(diào)用println()方法向標(biāo)準(zhǔn)輸出打印指定的字符串并換行。System類還提供了用于實(shí)現(xiàn)輸入的流對象System.in。System.in包含的read()方法可接收鍵盤輸入的數(shù)據(jù),但不能按照數(shù)據(jù)類型接收入。因此常使用位于java.util.Scanner類來接收鍵盤輸入的數(shù)據(jù)。案例——輸出客戶信息(1)在Eclipse中新建一個Java項(xiàng)目ScannerDemo,右擊src目錄,新建一個名為ScannerTest的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)右擊文件ScannerTest.java,從彈出的快捷菜單中選擇“RunAs”→“JavaApplication”命令,根據(jù)提示通過鍵盤輸入數(shù)據(jù),即可在控制臺窗格中看到輸出結(jié)果,如圖所示。項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一:計(jì)算圓的周長和面積本實(shí)戰(zhàn)通過鍵盤獲取圓的半徑,然后計(jì)算并輸出圓的面積。(1)在Eclipse中新建一個Java項(xiàng)目CircleArea,右擊src目錄,新建一個名為CircleArea的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)運(yùn)行程序,根據(jù)提示通過鍵盤輸入半徑,即可在控制臺窗格中看到輸出結(jié)果,如圖所示。實(shí)戰(zhàn)二:對密碼加密本案例利用位運(yùn)算符對給定的密碼進(jìn)行加密。(1)在Eclipse中新建一個Java項(xiàng)目PasswordDemo,右擊src目錄,新建一個名為PasswordDemo的類,包名稱為ch02。(2)在編輯器中輸入代碼,定義變量并輸出。(3)運(yùn)行程序,運(yùn)行結(jié)果如圖所示。項(xiàng)目三

流程控制任務(wù)1順序結(jié)構(gòu)和選擇結(jié)構(gòu)任務(wù)2循環(huán)結(jié)構(gòu)任務(wù)1順序結(jié)構(gòu)和選擇結(jié)構(gòu)任務(wù)引入看到Java學(xué)習(xí)群里的網(wǎng)友分享的Java應(yīng)用小程序,小白很心動,也想編寫一個簡單的小程序,模擬學(xué)習(xí)打卡獎勵,打卡滿21次就輸出一條祝賀語句,否則提示用戶再接再厲。但程序怎么知道是否滿21次了呢?小白想到自然語言中的“如果……就……否則”結(jié)構(gòu)語句,Java程序中是否也能這樣寫程序呢?知識準(zhǔn)備一、順序結(jié)構(gòu)順序結(jié)構(gòu)就是按照代碼的順序,逐行地執(zhí)行以分號;結(jié)束的語句。二、單分支條件語句單分支條件語句是單一條件的if語句,只有滿足if語句中的條件才能執(zhí)行相應(yīng)的語句。三、多分支條件語句多分支語句包括二選一條件的if...else語句,以及多選一的if..elseif…else語句。二選一條件的if...else語句與三元運(yùn)算符效果等價,只是比三元運(yùn)算符更直觀、靈活。案例——計(jì)算體質(zhì)指數(shù)BMI(1)在Eclipse中新建一個Java項(xiàng)目BMIDemo,右擊src目錄,新建一個名為BMITest的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中根據(jù)提示輸入身高和體重,按Enter鍵可以看到輸出結(jié)果,如圖所示。四、switch...case語句switch語句也屬于多分支條件語句,相當(dāng)于一系列的if..elseif..語句,但switch語句不是對條件進(jìn)行計(jì)算以獲得布爾值,而是對表達(dá)式進(jìn)行求值并根據(jù)計(jì)算結(jié)果確定要執(zhí)行的語句塊。案例——計(jì)算會員購物折扣(1)在Eclipse中新建一個Java項(xiàng)目ScoreEvaluate,右擊src目錄,新建一個名為DiscountCompute的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中根據(jù)提示積分?jǐn)?shù)值,按Enter鍵可以看到輸出結(jié)果,如圖所示。運(yùn)行結(jié)果任務(wù)2循環(huán)結(jié)構(gòu)任務(wù)引入使用分支語句解決了判斷打卡是否滿21天的問題,但怎樣讓程序反復(fù)執(zhí)行打卡的語句呢?總不能將一條語句重復(fù)寫21次吧?如果要求打卡100天或更多,豈不是讓人很崩潰?憑直覺,小白知道,作為一門高級編程語言,Java肯定提供了簡單直觀的方法解決循環(huán)執(zhí)行的問題。知識準(zhǔn)備循環(huán)結(jié)構(gòu)就是根據(jù)指定的條件多次執(zhí)行同一組代碼,重復(fù)的次數(shù)由指定的數(shù)值或條件決定,常用于檢索和批量處理。循環(huán)結(jié)構(gòu)由循環(huán)體和控制條件兩部分組成,其中重復(fù)執(zhí)行的代碼稱為循環(huán)體,能否重復(fù)操作,取決于循環(huán)的控制條件。循環(huán)結(jié)構(gòu)可分為以下兩類:(1)先進(jìn)行條件判斷,如果條件成立,執(zhí)行循環(huán)體代碼,執(zhí)行完之后再進(jìn)行條件判斷,條件成立繼續(xù),否則退出循環(huán)。(2)先不管條件是否成立,依次執(zhí)行語句,執(zhí)行完成之后進(jìn)行條件判斷,如果條件成立,循環(huán)繼續(xù),否則退出循環(huán)。一、for循環(huán)for循環(huán)是最支持迭代的一種通用結(jié)構(gòu),是最有效、最靈活的循環(huán)結(jié)構(gòu),多用于固定次數(shù)的循環(huán)案例——計(jì)算等差數(shù)列的和(1)在Eclipse中新建一個Java項(xiàng)目SeriesSum,右擊src目錄,新建一個名為SeriesSum的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。二、while循環(huán)while循環(huán)與for循環(huán)類似,當(dāng)條件表達(dá)式滿足時,執(zhí)行循環(huán)體,但是while循環(huán)一般適用于不固定次數(shù)的循環(huán)。在循環(huán)剛開始時,會計(jì)算一次循環(huán)條件的值,循環(huán)條件是布爾表達(dá)式,如果條件為true,則執(zhí)行循環(huán)體,否則退出循環(huán)。之后每一次循環(huán),都會重新計(jì)算一次循環(huán)條件,根據(jù)循環(huán)條件的值決定程序進(jìn)程。三、dowhile循環(huán)do...while循環(huán)與while循環(huán)基本相同,只不過do...while是先執(zhí)行循環(huán)體,再判斷條件表達(dá)式,所以do...while至少會循環(huán)一次。循環(huán)體包括變量改變賦值表達(dá)式,執(zhí)行語句并實(shí)現(xiàn)變量賦值。循環(huán)條件是布爾表達(dá)式,運(yùn)算的結(jié)果決定循環(huán)的進(jìn)程。dowhile語句執(zhí)行的過程是,先執(zhí)行do{}中循環(huán)體的內(nèi)容,再判斷while()中布爾表達(dá)式的值是否為true。如果為true,則繼續(xù)執(zhí)行循環(huán)體中的代碼,否則退出循環(huán)。案例——驗(yàn)證登錄密碼(1)在Eclipse中新建一個Java項(xiàng)目PasswordVerify,右擊src目錄,新建一個名為PasswordVerify的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中根據(jù)提示輸入密碼,如果輸入的密碼與指定的密碼不符,則再次輸出提示信息,要求用戶輸入密碼;如果密碼正確,則輸出一條提示信息,如圖所示。四、中斷循環(huán)語句執(zhí)行循環(huán)語句時,如果要跳出循環(huán),就需要用到中斷循環(huán)語句:break語句和continue語句。break語句用于中斷循環(huán),使循環(huán)不再執(zhí)行。如果是多個循環(huán)語句嵌套使用,則break語句跳出的是最內(nèi)層循環(huán)。continue語句與break語句類似,但它不是強(qiáng)制終止,而是中止循環(huán)體中尚未執(zhí)行的語句,強(qiáng)制開始下一次循環(huán)。對于for循環(huán),continue語句會導(dǎo)致執(zhí)行條件測試和循環(huán)變量步進(jìn)部分;對于while和dowhile循環(huán),continue語句會導(dǎo)致程序控制回到條件判斷語句上。案例——輸出奇數(shù)和偶數(shù)(1)在Eclipse中新建一個Java項(xiàng)目OddEven,右擊src目錄,新建一個名為OddEven的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,即可在控制臺窗格中看到輸出結(jié)果,如圖所示。五、循環(huán)嵌套在較為復(fù)雜的循環(huán)結(jié)構(gòu)中,通常會組合使用多種循環(huán)結(jié)構(gòu)。一個循環(huán)體內(nèi)部包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。在嵌套使用循環(huán)結(jié)構(gòu)時,要注意控制循環(huán)的跳轉(zhuǎn),以免陷入無限循環(huán)。在嵌套循環(huán)中,break語句只能使程序跳出包含它的最內(nèi)層的循環(huán)結(jié)構(gòu),如果要跳出外層循環(huán),要配合使用“標(biāo)簽”。同樣的,continue配合標(biāo)簽使用,可以跳出指定的循環(huán)體。案例——輸出3的倍數(shù)(1)在Eclipse中新建一個Java項(xiàng)目ContinueOuter,右擊src目錄,新建一個名為ContinueOuter的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,即可在控制臺窗格中看到輸出結(jié)果,如圖所示。案例——打印空心菱形(1)在Eclipse中新建一個Java項(xiàng)目DiamondPrint,右擊src目錄,新建一個名為Diamond的類,包名稱為ch03。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,即可在控制臺窗格中看到輸出結(jié)果,如圖所示。項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一:成績查詢本實(shí)戰(zhàn)輸入某次比賽中某位參賽人員兩個單項(xiàng)的成績之和,然后根據(jù)總分判斷對應(yīng)的獎項(xiàng)??偡执笥诘扔?8為一等獎,15(含)~18分為二等獎,10~14(含)分為三等獎,10分以及下沒有獎項(xiàng)。(1)新建一個項(xiàng)目,在項(xiàng)目中添加類,然后在main()方法中編寫代碼。(2)運(yùn)行程序,根據(jù)提示輸入兩個單項(xiàng)的成績,按Enter鍵,即可在控制臺窗格中看到計(jì)算的總分,以及對應(yīng)的獎項(xiàng),如圖所示。實(shí)戰(zhàn)二:報數(shù)出列初中某班有45個學(xué)生,體育課上排列成5×9的隊(duì)列報數(shù)。本實(shí)戰(zhàn)利用循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu),并配合使用帶標(biāo)簽的break語句,在報數(shù)至第3排第6列時對應(yīng)的學(xué)生出列終止報數(shù)。(1)新建一個項(xiàng)目,在項(xiàng)目中添加類,然后在main()方法中編寫代碼。(2)運(yùn)行程序,可在控制臺窗格中可以看到報數(shù)和出列情況,如圖所示。項(xiàng)目四

數(shù)組任務(wù)1一維數(shù)組任務(wù)2二維數(shù)組任務(wù)1一維數(shù)組任務(wù)引入為了解全班同學(xué)的英語過級情況,老師要求作為班委成員的小白統(tǒng)計(jì)一下全班同學(xué)的英語四級成績。小白就想編寫一個程序存儲同學(xué)們的成績,方便后續(xù)的計(jì)算、排序等工作。但全班48個同學(xué),難道要定義48個相同類型的變量,寫48條基本相同的語句?Java中有沒有數(shù)據(jù)類型,可以一次存儲所有的成績呢?答案是肯定的,這就是數(shù)組。知識準(zhǔn)備數(shù)組分為一維數(shù)組、二維數(shù)組以及多維數(shù)組,是把相同數(shù)據(jù)類型的元素按照一定的先后次序排列組織在一起有序集合,并使用一個標(biāo)識符進(jìn)行封裝,是一種引用類型的變量。本任務(wù)著重介紹一維數(shù)組和二維數(shù)組的創(chuàng)建及使用方法。一、創(chuàng)建一維數(shù)組一維數(shù)組可以看作是一組相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合,其中的每個數(shù)據(jù)稱為一個數(shù)組元素,按照排列順序,有一個唯一的索引號進(jìn)行標(biāo)識。整個序列有一個標(biāo)識符,稱為數(shù)組名稱。數(shù)組元素的數(shù)據(jù)類型決定了數(shù)組的數(shù)據(jù)類型,可以是Java中任意的數(shù)據(jù)類型(基本數(shù)據(jù)類型或引用數(shù)據(jù)類型)。表

數(shù)據(jù)類型的默認(rèn)值Java中,數(shù)據(jù)類型的默認(rèn)值如表4-1所示。二、數(shù)組初始化數(shù)組初始化是指創(chuàng)建數(shù)組時使用顯式方式為數(shù)組中的每個元素賦值。在Java中,初始化數(shù)組有以下3種常用的方式,下面分別進(jìn)行介紹。1.靜態(tài)初始化這種方式是直接在定義數(shù)組的同時就為數(shù)組元素分配空間并賦值2.默認(rèn)初始化數(shù)組是引用類型,其中的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間,其中的每個元素也被按照實(shí)例變量同樣的方式被隱式初始化。3.動態(tài)初始化這種方法是先定義數(shù)組,并為數(shù)組元素分配空間,然后為數(shù)組元素賦值。三、引用數(shù)組元素在使用上一節(jié)介紹的第三種初始化方式時,實(shí)質(zhì)是訪問數(shù)組arr_A的每一個元素并賦值。Java通過數(shù)組元素的下標(biāo)(也稱為索引)下標(biāo)引用數(shù)組中的具體元素,語法格式如下:案例——存儲并輸出商品數(shù)量(1)在Eclipse中新建一個Java項(xiàng)目GoodsNum,右擊src目錄,新建一個名為GoodsNum的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。四、遍歷一維數(shù)組上面的案例中,如果要存儲輸出的數(shù)據(jù)很多,一個一個初始化然后輸出顯然是一件很煩瑣的事情。利用數(shù)組元素有規(guī)律的索引,配合使用循環(huán)結(jié)構(gòu),可以很方便地遍歷數(shù)組中的所有元素。案例——輸出最好成績(1)在Eclipse中新建一個Java項(xiàng)目EvaluationScores,右擊src目錄,新建一個名為EvaluationScores的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。五、使用Arrays工具類定義數(shù)組中的元素后,如果要對數(shù)組中的元素進(jìn)行分配,可以利用Arrays工具類的fill()方法填充和替換元素。Arrays類的全稱是java.util.Arrays,是java.util包中提供的一個用于操作數(shù)組的實(shí)用類。該類包含了一系列的靜態(tài)方法用于操作數(shù)組。下面簡要介紹幾個常用的靜態(tài)方法。1.fill()該方法可將指定的int值分配給int型數(shù)組的每一個元素。2.sort()該方法可將數(shù)值類型和char型數(shù)組中的元素按照元素值由小到大進(jìn)行排列。3.toString()該方法可對數(shù)組進(jìn)行遍歷查看,將數(shù)組中的所有元素以一個字符串的形式返回。4.equals()該方法可比較兩個同種類型的數(shù)組的值是否相同,返回布爾類型的邏輯值。5.binarySearch()該方法可按照二分查找算法查找數(shù)組中是否包含指定的值,如果包含,則返回該值在數(shù)組中的索引;如果不包含,則返回負(fù)值。6.copyOf()該方法可將指定的數(shù)組從索引為0的元素開始復(fù)制到指定長度的新數(shù)組中。如果給定的長度超過原數(shù)組長度,則用null進(jìn)行填充。7.copyOfRange()該方法可將源數(shù)組中指定下標(biāo)范圍內(nèi)的元素值復(fù)制到一個新數(shù)組中。案例——復(fù)制并排序數(shù)組(1)在Eclipse中新建一個Java項(xiàng)目CopySort,右擊src目錄,新建一個名為CopySort的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。任務(wù)2二維數(shù)組任務(wù)引入利用數(shù)組存儲了全班同學(xué)的成績,但各個成績是孤立的,不能與對應(yīng)的學(xué)生(通過學(xué)號)關(guān)聯(lián)起來。如果后續(xù)要進(jìn)一步統(tǒng)計(jì)其他科目的成績,是不是每個科目都建一個數(shù)組存儲?即使每個科目都用一個數(shù)組,怎樣才能將這些數(shù)組關(guān)聯(lián)起來一一對應(yīng)呢?小白想到了數(shù)學(xué)中的矩陣,在Java中,能不能像矩陣那樣采用行列的方式存儲數(shù)據(jù)呢?這樣的話,一行就可以存儲一個學(xué)生的多種信息,48行就可以存儲全班同學(xué)的所有成績信息了。很快,小白知道了這種數(shù)據(jù)結(jié)構(gòu)稱為二維數(shù)組。知識準(zhǔn)備一、創(chuàng)建二維數(shù)組二維數(shù)組可以看作是數(shù)組的數(shù)組,也就是說數(shù)組中的每一個元素也是一個數(shù)組。二維數(shù)組的聲明方式與一維數(shù)組類似,也有兩種聲明方式,不同的是二維數(shù)組中包含兩個方括號[]。二、二維數(shù)組賦值二維數(shù)組賦值初始化與一維數(shù)組相同,也有三種方式,都是直接將元素值包含在{}中。不同的是,二維數(shù)組有兩個索引,每一行的元素值都包含在{}中。案例——上報缺勤人數(shù)本案例存儲某公司3個部門本月的缺勤人數(shù)及總數(shù),并輸出。(1)在Eclipse中新建一個Java項(xiàng)目AbsentRecord,右擊src目錄,新建一個名為AbsentRecord的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。三、遍歷二維數(shù)組二維數(shù)組可以利用兩層嵌套的for循環(huán)遍歷所有的行標(biāo)和列標(biāo),從而訪問數(shù)組中的每一個元素。在這里要提請讀者注意的是,對于給定的二維數(shù)組arr[][],使用length屬性返回數(shù)組長度時,arr.length返回的是二維數(shù)組的行數(shù),arr[i].length返回的是第(i-1)行的列數(shù)量。如果是不規(guī)則數(shù)組,每一行的列數(shù)量也不相同,因此,在遍歷二維數(shù)組時,最好使用數(shù)組的length屬性值控制循環(huán)次數(shù)。案例——轉(zhuǎn)置二維數(shù)組本案例存儲一個3行4列的二維數(shù)組,將數(shù)組元素轉(zhuǎn)置并輸出。(1)在Eclipse中新建一個Java項(xiàng)目ArrTranspose,右擊src目錄,新建一個名為ArrTranspose的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一:查詢指定元素的位置本實(shí)戰(zhàn)創(chuàng)建一個int型一維數(shù)組,在數(shù)組中查找指定的數(shù)值并返回對應(yīng)的。(1)在Eclipse中新建一個Java項(xiàng)目SearchDemo,右擊src目錄,新建一個名為SearchDemo的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。實(shí)戰(zhàn)二:替換二維數(shù)組的元素值本實(shí)戰(zhàn)創(chuàng)建一個int型二維數(shù)組,使用默認(rèn)值初始化,然后替換數(shù)組的元素值,使每個元素的值為其兩個下標(biāo)的和。(1)在Eclipse中新建一個Java項(xiàng)目ChangeValue,右擊src目錄,新建一個名為ChangeValue的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)在工具欄上單擊“Run”按鈕,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。實(shí)戰(zhàn)三:詩詞排版本實(shí)戰(zhàn)使用不規(guī)則的字符型二維數(shù)組將宋詞《定風(fēng)波》中的部分詞句打印輸出。(1)在Eclipse中新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為DingFengBo的類,包名稱為ch04。(2)在編輯器中輸入代碼,定義變量并輸出。(3)運(yùn)行程序,結(jié)果如圖所示。項(xiàng)目五

字符串任務(wù)1String類字符串任務(wù)2StringBuffer類字符串任務(wù)1String類字符串任務(wù)引入在輸出學(xué)生成績時,使用學(xué)號查看不太直觀,小白想輸出時添加對應(yīng)的學(xué)生姓名,并輸出對應(yīng)的成績等級(優(yōu)秀、良好、及格或不及格)。但學(xué)生的姓名和成績等級都不是單個字符,使用char類型存儲顯然操作不方便且效率低下,如果后期要修改其中的個別字符更是麻煩。通過查閱資料,小白得知強(qiáng)大的Java提供了存儲多個字符甚至大篇幅字符內(nèi)容的數(shù)據(jù)結(jié)構(gòu)——字符串,使用這種數(shù)據(jù)結(jié)構(gòu)還能很便捷地對字符串的特定字符或子串進(jìn)行操作。知識準(zhǔn)備字符串是若干個字符有序拼接而成的文本值,在存儲方式上類似數(shù)組。Java用String類描述字符串,將字符串當(dāng)作對象進(jìn)行了封裝,方便對字符串進(jìn)行操作。一、創(chuàng)建字符串在Java中,使用關(guān)鍵字String聲明字符串。與char不同的是,字符串中可以包含若干個字符,能顯示任何文本信息,且字符串中的字符必須包含在雙引號中。二、連接字符串在程序設(shè)計(jì)中,有時需要將多個字符串連接起來生成一個新的字符串,例如本書的案例中常用到連接多個字符串以輸出信息。案例——打印購物小票本案例通過連接字符串,打印一張購物小票。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為BirthdayTest的類。(2)引入java.util.Scanner類,然后在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,結(jié)果如圖所示。三、提取字符串內(nèi)容Java將字符串作為對象進(jìn)行處理,因此可以使用String類的方法執(zhí)行多種操作,如獲取字符串的長度、返回指定位置的字符、提取字符串的子串,等等。下面簡要介紹幾種常用的操作方法。1.獲取字符串的長度與數(shù)組類似,獲取字符串的長度使用String類的方法length()。2.獲取指定位置的字符使用charAt()方法可以獲取字符串中指定位置的字符,返回類型為char3.獲取指定字符或子串的位置如果要得到指定字符在字符串中首次出現(xiàn)的位置,可以使用indexOf()方法,返回類型為int。如果指定的字符或子串不存在,則返回-1。4.提取子串使用substring()方法可以在字符串中提取指定范圍的字符子串案例——顯示出生日期(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為BirthdayTest的類。(2)引入java.util.Scanner類,然后在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,結(jié)果如圖所示。四、判斷字符串在實(shí)際應(yīng)用中,有時會需要判斷字符串中是否包含指定的字符串,字符串是否以指定的字符串開頭或結(jié)束,以及比較兩個字符串是否相同。Java提供了相應(yīng)的方法實(shí)現(xiàn)這些需求。1.contains()方法該方法可以判斷字符串中是否包含指定的字符串,返回布爾類型的邏輯值。2.startsWith()方法該方法可以判斷字符串是否以指定的字符串開頭,返回布爾類型的邏輯值。3.endsWith()方法該方法可以判斷字符串是否以指定的字符串結(jié)束,返回布爾類型的邏輯值。4.equals()方法該方法可以判斷當(dāng)前字符串是否與指定的字符串相同,返回布爾類型的邏輯值。5.equalsIgnoreCase()方法在實(shí)際應(yīng)用中,有時要求只要兩個字符串的長度和內(nèi)容相同,就可認(rèn)定兩個字符串相同。例如輸入登錄用戶名和密碼時不區(qū)分大小寫。案例——按類別統(tǒng)計(jì)商品庫存本案例將商品名稱和對應(yīng)的庫存量以“名稱(庫存量)”的形式存儲在一個字符串?dāng)?shù)組中,通過String類的一些方法統(tǒng)計(jì)各類商品的庫存總量。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為Inventory的類。(2)在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,在控制臺窗格中可以看到各類商品的庫存總量,如圖所示。五、轉(zhuǎn)換字符串Java提供了豐富的方法處理字符串,可以將字符數(shù)組或者字節(jié)數(shù)組轉(zhuǎn)成字符串,也可以將基本數(shù)據(jù)類型或者對象轉(zhuǎn)成字符串,還可以修改字符串的大小寫和內(nèi)容,以及將字符串轉(zhuǎn)換為數(shù)組。下面介紹幾個常用的轉(zhuǎn)換字符串的方法。1.大小寫轉(zhuǎn)換轉(zhuǎn)換字符串內(nèi)容的大小寫可以使用方法toUpperCase()和toLowerCase(),這兩個方法分別將字符串中的所有字符轉(zhuǎn)換為大寫和小寫。2.其他類型轉(zhuǎn)換為字符串String類提供了一個靜態(tài)方法valueOf(),用于將基本數(shù)據(jù)類型、對象或字符數(shù)組轉(zhuǎn)換為字符串3.將字符串轉(zhuǎn)成字符數(shù)組或字節(jié)數(shù)組上面介紹了將字符數(shù)組轉(zhuǎn)換為字符串的操作,Java還支持將字符串轉(zhuǎn)換為字符數(shù)組或字節(jié)數(shù)組4.替換字符串內(nèi)容利用replace()方法可以替換字符串中指定的字符序列,返回一個新的字符串。5.將字符串轉(zhuǎn)換為字符串?dāng)?shù)組這種操作其實(shí)就是將字符串根據(jù)給定的分隔符進(jìn)行拆分,返回一個字符串?dāng)?shù)組。6.去除字符串兩端的空格使用方法trim()可以刪除字符串首尾外的空格案例——搜索貨架上的商品本案例使用一個3×3的二維數(shù)組模擬一個3層的貨架,每層分3格存放商品。通過在控制臺輸入要搜索的商品名稱或關(guān)鍵字,可輸出搜索到的商品名稱和所在位置。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為SearchGoods的類。(2)引入java.util.Scanner類,然后在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,在控制臺窗格中根據(jù)提示輸入要搜索的商品名稱或其中一個字,按Enter鍵即可輸出搜索到的商品信息,如圖所示。任務(wù)2StringBuffer類字符串任務(wù)引入臨近畢業(yè),小白編寫了一個程序,使用字符串存儲同學(xué)姓名和電話,按學(xué)號輸出全班同學(xué)的通訊錄,最近遇到了一些小麻煩。原來有的同學(xué)因某些原因聯(lián)系不上手機(jī)號,要備注一下實(shí)習(xí)單位的座機(jī)號,有的同學(xué)要修改通信地址。這樣一來,由于字符串的長度發(fā)生了變化,運(yùn)行時總是出錯。Java中有沒有容量可變,可以修改字符串序列的字符串呢?知識準(zhǔn)備上一個任務(wù)中介紹的String類創(chuàng)建的字符串一旦創(chuàng)建就不可修改。本任務(wù)將介紹一種可修改的字符串——使用StringBuffer類創(chuàng)建字符串,而且這種字符串的長度會隨著存放的字符串增加而自動增加。一、創(chuàng)建StringBuffer對象StringBuffer類是一個類似于String類的字符串緩沖區(qū),可以存儲任意類型的數(shù)據(jù),且支持對字符串內(nèi)容進(jìn)行修改,長度可變。要使用緩沖區(qū),先要建立StringBuffer對象。創(chuàng)建StringBuffer對象不能通過直接賦值為字符串常量的方式,而應(yīng)該使用關(guān)鍵字new二、添加數(shù)據(jù)在字符串緩沖區(qū)中添加數(shù)據(jù)有兩個方法append()和insert()方法append()可將任意數(shù)據(jù)類型的參數(shù)轉(zhuǎn)換為字符串,然后追加到字符序列末尾。方法insert()用于將字符串插入到指定的索引位置。三、刪除數(shù)據(jù)在字符串緩沖區(qū)中刪除數(shù)據(jù)也有兩個方法delete()和deleteCharAt()案例——調(diào)整員工花名冊某公司按員工編號編排花名冊,最近有員工離職,也有新員工入職。為了保持其他員工編號不變,新進(jìn)員工的名單添加到離職員工的位置。本案例使用StringBuffer類的相關(guān)方法調(diào)整員工花名冊。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為EmployeeList的類。(2)在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,根據(jù)提示在控制臺分別輸入離職員工姓名和新進(jìn)員工姓名,即可輸出調(diào)整后的員工花名冊,如圖所示。四、修改數(shù)據(jù)字符串緩沖區(qū)創(chuàng)建后,還可以進(jìn)行修改,常用的操作包括替換指定范圍內(nèi)的字符、將原字符串設(shè)置為指定長度不是最后一個員工離職

最后一個員工離職案例——比較String和StringBuffer對象的區(qū)別本案例分別對String類和StringBuffer類創(chuàng)建的字符串進(jìn)行修改,比較兩者的區(qū)別。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為SBFDemo的類。(2)在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,在控制臺窗格中可以看到運(yùn)行結(jié)果,如圖所示。五、反轉(zhuǎn)字符串利用reverse()方法可以反轉(zhuǎn)字符串,語法格式如下:六、其他方法StringBuffer類還提供了一些與String類相同的方法。例如,可以使用substring()方法可以提取子串。使用indexOf()方法獲取指定字符串首次出現(xiàn)的位置;lastIndexOf()方法可以反向搜索,返回指定子字符串在當(dāng)前字符串中最后出現(xiàn)的位置。案例——輸出網(wǎng)絡(luò)號碼本案例在控制臺輸入IP地址,利用lastIndexOf()方法和substring()方法從IP地址中提取網(wǎng)絡(luò)號碼和本地計(jì)算機(jī)號碼。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為SBFDemo的類。(2)在類定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,在控制臺根據(jù)提示輸入IP地址,按Enter鍵,即可返回該IP地址的網(wǎng)絡(luò)號碼和本地計(jì)算機(jī)號碼,如圖所示。項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一:姓名排序本實(shí)戰(zhàn)從控制臺接收輸入的姓名列表,姓名之間使用逗號分隔。利用字符串轉(zhuǎn)換方法和數(shù)組排序方法將姓名字符串轉(zhuǎn)換為字符串?dāng)?shù)組并排序,最后輸出排序后的姓名列表,用空格分隔。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為NameSort的類。(2)引入Arrays類和Scanner類,在類NameSort定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,輸入要排序的姓名列表,按Enter鍵,即可將姓名按升序進(jìn)行排列,如圖所示。實(shí)戰(zhàn)二:手機(jī)號加密本實(shí)戰(zhàn)從控制臺接收輸入的手機(jī)號,如果輸入的號碼長度不為11位,則輸出錯誤提示并要求重新輸入,否則用“*”號替換手機(jī)號中的第4位到第7位進(jìn)行加密并輸出。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為PhoneNum的類。(2)引入Scanner類,在類PhoneNum定義中添加main()方法,編寫實(shí)現(xiàn)代碼。(3)運(yùn)行程序,在控制臺根據(jù)提示輸入手機(jī)號,按Enter鍵,即可返回加密后的號碼,如圖所示。項(xiàng)目六

類與對象任務(wù)1創(chuàng)建類任務(wù)2使用對象任務(wù)1創(chuàng)建類任務(wù)引入在學(xué)習(xí)編程語言時,小白總能聽到或看到“面向?qū)ο蟆薄邦悺薄皩ο蟆边@樣的字眼。在學(xué)習(xí)Java之初,小白就知道了Java是一門完全面向?qū)ο蟮木幊陶Z言,但不知道面向?qū)ο笫侨绾卧诔绦蛑畜w現(xiàn)的,Java是如何將現(xiàn)實(shí)世界中的一個實(shí)體(例如水杯)和程序世界中的代碼邏輯聯(lián)系在一起,對應(yīng)起來的。帶著這些疑問,小白繼續(xù)Java學(xué)習(xí)之旅。知識準(zhǔn)備面向?qū)ο蟮乃枷胧遣捎脭?shù)據(jù)抽象的方法構(gòu)建程序的類、對象和方法。類是一個抽象的概念,表示對現(xiàn)實(shí)生活中一類具有共同特征的對象的抽象化,定義一類對象所具備的屬性和方法。一、定義類類是面向?qū)ο笳Z言中最常用的元素,在面向?qū)ο缶幊讨?,類可看作是定義了對象屬性和行為的對象載體。1.類的修飾符包括訪問權(quán)限修飾符、最終類修飾符final和抽象類修飾符abstract三種。2.類名用于描述類的功能的標(biāo)識符,最好具有實(shí)際意義,能見名知意,以便理解類中描述的內(nèi)容。類的命名規(guī)則建議遵循Pascal命名法(帕斯卡命名法),即每個單詞的首字母大寫。3.類體對一類具有共同特征的對象所具有的屬性和方法的定義。二、定義成員變量成員變量的定義方法與變量的定義方法類似,只是在變量前面可以加上修飾符。類成員的修飾符包括public、protected或者private;靜態(tài)變量修飾符static;常量說明符final。在類中定義成員變量后,加載類時,會自動為其中的變量賦值為相應(yīng)數(shù)據(jù)類型的默認(rèn)值,如表所示。案例——定義類Table本案例定義一個圓桌類Table,包含直徑大小、顏色和價格屬性。(1)新建一個Java項(xiàng)目ClassDemo,添加一個類Table。(2)在類中定義成員變量。三、定義成員方法方法是將完成同一功能的代碼按邏輯組織在一起,方便調(diào)用的一種方式。訪問修飾符可以是類成員訪問修飾符中的任意一種,如果省略,則只能在當(dāng)前類及同一個包中的類中進(jìn)行訪問。方法的返回值可以是任意的數(shù)據(jù)類型,如果指定了返回值類型,則必須使用return關(guān)鍵字返回一個與之類型匹配的值。如果沒有指定返回值類型,必須使用void關(guān)鍵字表示沒有返回值。方法名通常遵循Pascal命名法進(jìn)行命名,用于描述方法所實(shí)現(xiàn)功能。參數(shù)列表用于指定方法使用的參數(shù),使用“數(shù)據(jù)類型參數(shù)名”的形式定義。案例——計(jì)算階乘(1)新建一個Java項(xiàng)目FactorialDemo,添加一個類FactorialDemo。(2)在類中添加main()方法和自定義的成員方法factorialX()。方法main()中調(diào)用成員方法,輸出計(jì)算結(jié)果。(3)運(yùn)行程序,在控制臺中根據(jù)提示輸入一個整數(shù),按Enter鍵返回計(jì)算結(jié)果。輸入?yún)?shù)為負(fù)數(shù)、0和正整數(shù)的運(yùn)行結(jié)果分別如圖所示。四、構(gòu)造方法在類中除了成員方法之外,還可以定義一種特殊的方法——構(gòu)造方法。構(gòu)造方法是一個與類同名的方法,用于根據(jù)類的定義創(chuàng)建一個對象。構(gòu)造方法具有以下特點(diǎn):構(gòu)造方法名與所在類的類名相同構(gòu)造方法沒有返回值,不能指定返回類型,也不能定義為void構(gòu)造方法用于初始化無static修飾的成員變量五、創(chuàng)建內(nèi)部類為便于程序維護(hù),通常一個.java文件中只定義一個類。如果在項(xiàng)目中,類與接口或兩個接口之間的方法命名有沖突,這種情況下,必須使用內(nèi)部類來解決,這也是唯一一種必須使用內(nèi)部類的情況。所謂內(nèi)部類,就是在一個類內(nèi)部定義的類,作為類的成員,編譯后生成兩個獨(dú)立的類。內(nèi)部類可用static、protected和private修飾,而外部類只能使用public或缺省修飾符。內(nèi)部類可視為外部類的一個成員,內(nèi)部類方法可以訪問所在的外部類定義的數(shù)據(jù),包括私有的數(shù)據(jù)結(jié)構(gòu),但外部類不能直接訪問內(nèi)部類的成員。案例——描述書架上可放的圖書數(shù)量本案例使用內(nèi)部類描述一個書架上可放的最多圖書數(shù)量。(1)新建一個Java項(xiàng)目BookShelf,添加一個類BookShelf,該類作為外部類。(2)在類中定義一個內(nèi)部類Books描述圖書數(shù)量信息(3)運(yùn)行程序,在控制臺窗格中可以看到輸出結(jié)果,如圖所示。任務(wù)2使用對象任務(wù)引入小白喜歡小鳥,他創(chuàng)建了一個Bird類,定義了鳥類的翅膀、爪子、羽毛和喙等屬性。除了這些共有的屬性,不同的小鳥有不同的特征,不同的行為。怎么才能通過Bird類創(chuàng)建屬性和行為各不相同的小鳥呢?能否在Bird類的基礎(chǔ)上添加游禽特有的屬性和行為,創(chuàng)建一個游禽類呢?知識準(zhǔn)備所謂面向?qū)ο笫侵冈诰幊虝r將任何事物都看成是一個對象來描述。對象是面向?qū)ο蟪绦虻暮诵?,對?yīng)概念世界中的實(shí)體。一個對象是一個程序單元,將一組數(shù)據(jù)和對這些數(shù)據(jù)的各種操作組合在一起。對象包括屬性和方法,對象中的數(shù)據(jù)稱為屬性,對象中的各種操作稱為方法,用于描述對象的功能。一、實(shí)例化對象定義了類及其中的類成員之后,就可以在程序中創(chuàng)建類的對象,訪問類中的成員。創(chuàng)建類的對象,可以理解為基于一個模板定制一個對象。二、訪問類成員創(chuàng)建對象后,就可以通過“對象名”調(diào)用類中的成員案例——訪問Table類成員本案例定義一個類,然后創(chuàng)建類對象,通過調(diào)用類的方法,輸出類中定義的屬性值。(1)打開Java項(xiàng)目ClassDemo。(2)在類Table中添加一個無參構(gòu)造方法、一個帶參數(shù)的構(gòu)造方法以及main()方法。(3)運(yùn)行程序,打開控制臺窗口,顯示運(yùn)行結(jié)果,如圖所示。三、獲取、設(shè)置成員變量的值在上一節(jié)中,使用“對象名.成員變量名”的方式訪問成員變量,可以設(shè)置和獲取成員變量的值。但在實(shí)際應(yīng)用中,為保證數(shù)據(jù)安全,通常不可直接訪問或修改成員變量的值。如果要查看、修改這類成員變量,Java提供了專門的成員方法來訪問成員變量,獲取成員變量值的方法稱為getter方法,設(shè)置成員變量值的方法稱為setter方法。案例——計(jì)算圓柱體的體積本案例定義一個圓柱體的類,使用無參數(shù)構(gòu)造方法創(chuàng)建一個圓柱體對象,通過getter方法和setter方法訪問圓柱體的底面半徑和高,計(jì)算圓柱體的體積。(1)新建一個Java項(xiàng)目VolumeCompute,添加一個類Cylinder。(2)在類中定義成員常量和變量,以及setter方法和getter方法,然后添加main()方法。(3)運(yùn)行程序,在控制臺窗格中可以看到圓柱體的參數(shù)和體積,如圖所示。四、方法重載面向?qū)ο缶幊痰亩鄳B(tài)特性,簡單來說,就是“對外一種定義,內(nèi)部多種實(shí)現(xiàn)”。方法重載是面向?qū)ο缶幊潭鄳B(tài)特性的一種表現(xiàn)形式。Java支持方法重載,可以在同一個類中定義多個名字相同但參數(shù)不同的方法。同一個方法名就是對外的統(tǒng)一接口,參數(shù)不同導(dǎo)致內(nèi)部實(shí)現(xiàn)也不同。在Java中,定義重載的方法必須遵循以下原則:方法名相同,包括大小寫方法的參數(shù)列表必須不同,可以是參數(shù)的類型、個數(shù)或順序不同方法的返回類型、修飾符可以相同,也可以不同案例——不同數(shù)據(jù)類型的減法運(yùn)算本案例通過方法重載,實(shí)現(xiàn)不同的數(shù)據(jù)類型的減法運(yùn)算。(1)新建一個Java項(xiàng)目MinusDemo,添加一個類MinusDemo。(2)在類中定義5個同名的方法計(jì)算減法,然后添加main()方法。(3)運(yùn)行程序,在控制臺窗格中可以看到,根據(jù)輸入的參數(shù)類型不同,自動調(diào)用不同的minus()方法進(jìn)行計(jì)算,并輸出結(jié)果,如圖所示。五、類的繼承繼承的基本思想是基于某個父類的擴(kuò)展,制定出一個新的子類。子類可以繼承父類原有的屬性和方法,也可以增加自己特有的屬性和方法。例如,等邊三角形是一種特殊的三角形,可以說等邊三角形類繼承了三角形類的所有屬性和方法(例如三條邊,內(nèi)角和為180度),還擴(kuò)展了一些等邊三角形特有的屬性和方法(例如三條邊相等,每個角都為60度)。案例——比較不同包裝禮品的區(qū)別本案例使用類的繼承說明精裝禮品與簡裝禮品在價格上的區(qū)別。(1)新建一個Java項(xiàng)目presents,添加一個簡裝禮品的類Paperback。(2)在類中定義簡裝禮品的成員屬性和成員方法(3)在項(xiàng)目中添加一個新的類clothbound,繼承自類Paperback,在類中定義精裝禮品的成員屬性和成員方法(4)在項(xiàng)目中添加一個新的類PresentsTest,在類中定義主方法main(),比較精裝禮品和平裝禮品的價格差別(5)運(yùn)行程序,在控制臺窗格中可以看到比較結(jié)果,如圖所示。六、使用靜態(tài)成員在Java中,如果不同的類之間需要對同一個變量或方法進(jìn)行操作,可以使用關(guān)鍵字static修飾這個共享變量或方法,將其定義為靜態(tài)變量或靜態(tài)方法,統(tǒng)稱為靜態(tài)成員。相對地,無static修飾的成員則稱為動態(tài)成員。與類的動態(tài)成員依賴類的實(shí)例(即具體的對象)不同,類的靜態(tài)成員不依賴于類的實(shí)例,在不創(chuàng)建類對象的情況下就可以直接通過類名進(jìn)行訪問,且這些靜態(tài)成員被類的所有實(shí)例共享。因此,動態(tài)變量常稱為實(shí)例變量,靜態(tài)變量則稱為類變量。案例——計(jì)算快遞費(fèi)用假設(shè)某快遞公司只接收重量小于等于100KG的包裹,運(yùn)費(fèi)按重量計(jì)算,到上海首重12元,續(xù)重1.01~20KG,每千克加收4元;續(xù)重20.1~50KG,每千克加收3.5元;續(xù)重50.1~100KG,每千克加收3元。本案例根據(jù)包裹重量計(jì)算首重調(diào)整前后的快遞費(fèi)用。(1)新建一個Java項(xiàng)目PackageFee,添加一個類PackageFee。(2)在類中將首重費(fèi)用定義為靜態(tài)變量,添加類的成員方法計(jì)算運(yùn)費(fèi)、調(diào)整首重價格,然后添加主方法創(chuàng)建類的對象,輸入包裹重量,調(diào)用靜態(tài)變量和成員方法計(jì)算運(yùn)費(fèi)。(3)運(yùn)行程序,在控制臺窗格中根據(jù)提示輸入包裹重量和新的首重價格,即可計(jì)算對應(yīng)的運(yùn)費(fèi),如圖所示。項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一:定義Student類本實(shí)戰(zhàn)定義一個學(xué)生類StudentInfo,包含一個自定義的構(gòu)造函數(shù)為類中的屬性賦值,一個成員函數(shù)用于輸出學(xué)生信息。(1)新建一個Java項(xiàng)目StudentClass,在項(xiàng)目中添加一個名為StudentInfo的類,并定義類成員(2)運(yùn)行程序,結(jié)果如圖所示。實(shí)戰(zhàn)二:查看聯(lián)系人信息本實(shí)戰(zhàn)通過重載構(gòu)造方法,根據(jù)聯(lián)系人信息的完整程度輸出相應(yīng)的聯(lián)系人信息。(1)新建一個Java項(xiàng)目,在項(xiàng)目中添加一個名為ContactInfo的類,并定義類成員(2)運(yùn)行程序,在控制臺窗格中可以看到輸出信息,如圖所示。項(xiàng)目七常用的JavaAPI任務(wù)1認(rèn)識JavaAPI任務(wù)2常用類庫任務(wù)1認(rèn)識JavaAPI任務(wù)1認(rèn)識JavaAPI任務(wù)引入小白在查看Java程序代碼時,發(fā)現(xiàn)很多程序都是以關(guān)鍵字package和import引導(dǎo)的語句開頭,這些語句是什么意思呢?其后引導(dǎo)的標(biāo)符識又代表什么,有什么功能呢?在網(wǎng)上經(jīng)??吹降腏avaAPI又是什么呢?知識準(zhǔn)備一、什么是JavaAPIJavaAPI是Java應(yīng)用程序編程接口(JavaApplicationProgramInterface)的英文首字母縮寫,是系統(tǒng)提供的已實(shí)現(xiàn)的Java標(biāo)準(zhǔn)類庫的統(tǒng)稱。Java類庫也稱為運(yùn)行時庫,是Java語言的重要組成部分,提供了Java程序與運(yùn)行它的Java虛擬機(jī)之間的接口。二、常用的包Java提供的預(yù)定義類根據(jù)實(shí)現(xiàn)的功能不同,可以劃分為不同的集合,每個集合是一個包,這些包合稱為類庫。下面簡要介紹Java的一些基本包。java.lang:這是Java的核心語言包,包含運(yùn)行Java程序必不可少的系統(tǒng)類,例如System類、String類、Exception類。由于JVM會自動引入這個包,因此不需要引入就可直接使用該包中的類。java.util:該包提供一些實(shí)用工具類,例如時間類Date、隨機(jī)數(shù)類Random和集合類Collection等等。java.io:該包提供各種輸入流類和輸出流類,包含實(shí)現(xiàn)Java程序與操作系統(tǒng)、用戶界面以及其他Java程序進(jìn)行數(shù)據(jù)交換的類。java.awt:這是一個抽象窗口工具集包,包含用于構(gòu)建GUI(圖形用戶界面)程序的基本類和繪圖類。java.awt.event:該包包含用戶與界面交互的事件類、監(jiān)聽器接口等,使程序可以用不同的方式處理不同類型的事件。java.sql:這是一個實(shí)現(xiàn)JDBC(Javadatabaseconnection)的包,能實(shí)現(xiàn)Java程序訪問不同種類的數(shù)據(jù)庫的功能。:該包是Java語言實(shí)現(xiàn)網(wǎng)絡(luò)功能的類庫,例如Socket類、URL類等等。利用這些類,開發(fā)者可以編寫具有網(wǎng)絡(luò)功能的程序。javax.swing:該包提供一組完全由Java語言實(shí)現(xiàn)的圖形用戶界面組件,并能盡可能地讓這些組件在所有平臺上的工作方式都相同。查看API文檔三、包的聲明與引入聲明包可以將Java的類放到特定的包中,Java使用關(guān)鍵字package聲明包在Eclipse的“PackageExplorer”窗格中可以看到對應(yīng)的文件結(jié)構(gòu)關(guān)系,如圖所示。案例——利用Eclipse創(chuàng)建包本案例在Eclipse中創(chuàng)建一個包,并在包中創(chuàng)建一個類。(1)新建一個Java項(xiàng)目PackageDemo,右擊項(xiàng)目中的src節(jié)點(diǎn),從彈出的快捷菜單中選擇“New”→“Package”命令,打開“NewJavaPackage”對話框。Sourcefolder文本框中顯示默認(rèn)的源文件路徑。(2)在Name文本框中輸入包名稱,如圖所示。(3)單擊“Finish”按鈕關(guān)閉對話框,即可創(chuàng)建包?!癗ewJavaPackage”對話框創(chuàng)建包(4)在包demo上右擊,從彈出的快捷菜單中選擇“New”→“Class”命令,打開“NewJavaClass”對話框。(5)單擊“Finish”按鈕關(guān)閉對話框,在Eclipse的編輯區(qū)可以看到自動生成的包聲明語句和類定義代碼:

創(chuàng)建類創(chuàng)建的類任務(wù)2常用類庫任務(wù)引入了解了JavaAPI的功能,小白感覺就像發(fā)現(xiàn)了一個巨大的寶庫,原來很多要編寫大段代碼實(shí)現(xiàn)的基本功能,Java已編寫好并預(yù)置在系統(tǒng)中。要使用這些功能高效編碼,接下來的任務(wù)就是掌握這些類庫的常用方法。小白躍躍欲試,決定先從最常用的幾個類庫開始Java學(xué)習(xí)的晉級之路。知識準(zhǔn)備了解了API的功能和使用方法,本任務(wù)介紹幾個常用的類庫。一、包裝類在前面的項(xiàng)目中介紹過,Java的數(shù)據(jù)類型分為兩種:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。引用數(shù)據(jù)類型包括所有的類和接口類型,例如String類,可以視為一個對象進(jìn)行處理。能否將基本數(shù)據(jù)類型也作為對象進(jìn)行處理呢?基本數(shù)據(jù)類型對應(yīng)的包裝類如表所示。Byte類、Short類、Integer類、Long類、Float類和Double類都是Number類的子類,要把這些子類對象轉(zhuǎn)換為對應(yīng)的基本數(shù)據(jù)類型,需要使用Number類對應(yīng)子類中的方法,如表所示。創(chuàng)建了對象,就可以引用方法對對象進(jìn)行操作。Integer類的常用方法如

溫馨提示

  • 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

提交評論