Java程序設(shè)計教程(第2版)教學課件全套_第1頁
Java程序設(shè)計教程(第2版)教學課件全套_第2頁
Java程序設(shè)計教程(第2版)教學課件全套_第3頁
Java程序設(shè)計教程(第2版)教學課件全套_第4頁
Java程序設(shè)計教程(第2版)教學課件全套_第5頁
已閱讀5頁,還剩735頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1Java概述Java程序設(shè)計教程(慕課版)第二版第章C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.6IntelliJIDEA簡介與使用1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.7小結(jié)1.1Java語言簡介本課程以標準版17為主介紹Java語言的基礎(chǔ)語法和實用類以及應用編程知識。Java語言是由JamesGosling創(chuàng)建的。1990年Gosling與PatrickNaughton和MikeSheridan等人設(shè)計了一種語言叫做Oak,后來改名為Java。Java語言從發(fā)布到現(xiàn)在,一直處于快速發(fā)展過程中。具體體現(xiàn)在它的版本升級以及每個新版本帶來的新特性上。Java語言有三個主版本:標準版(SE即StandardEdition)、企業(yè)版(EE即EnterpriseEdition)和微型版(ME即MicroEdition)。1.1Java語言簡介——Java的特點1、簡單性Java語言語法與C/C++有很多相似的地方,例如數(shù)據(jù)類型、運算符、表達式和語句都是如此。對比一下關(guān)鍵字列表就可以發(fā)現(xiàn)這種相似性。2、解釋式Java源程序經(jīng)轉(zhuǎn)換生成字節(jié)碼文件,然后由Java虛擬機解釋執(zhí)行。1.1Java語言簡介——Java的特點3、安全性Java通過自動垃圾回收機制、不支持指針類型、字節(jié)碼驗證機制、異常處理機制等保證其安全性。4、面向?qū)ο驤ava語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言。面向?qū)ο蟮乃枷胧谷藗兎治鰡栴}和解決問題更接近人類固有的思維模式,更自然順暢,用面向?qū)ο蟪绦蛘Z言(OOPL)編程,更安全高效。1.1Java語言簡介——Java的特點5、平臺無關(guān)Java源文件經(jīng)編譯生成與計算機指令無關(guān)的字節(jié)碼,這些字節(jié)碼不依賴于特定硬件平臺和操作系統(tǒng)。這就使Java程序“編寫一次,到處運行”(writeonce,runanywhere)。6、支持多線程多線程機制使得一個Java程序能夠同時處理多項任務。7、動態(tài)性Java的類是程序構(gòu)成的模塊,Java程序執(zhí)行所需要調(diào)用的類是在運行時動態(tài)地加載到內(nèi)存中,這使得Java程序運行的內(nèi)存開銷小。C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.6IntelliJIDEA簡介與使用1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.7小結(jié)1.2JDK的安裝與配置1、下載和安裝JDK是Java開發(fā)工具包,使用JDK開發(fā)Java程序。登錄Oracle官網(wǎng)http:///,下載jdk-17_windows-x64_bin.zip或最新版本到本地硬盤,需選擇路徑進行解壓,在之后的環(huán)境變量設(shè)置時會用到該路徑。2、環(huán)境變量設(shè)置JDK涉及到的環(huán)境變量主要有三個:JAVA_HOMEPATHCLASSPATH

1.2JDK的安裝與配置JAVA_HOME表示JDK的安裝目錄,它的作用是使其他軟件如TOMCAT、Eclipse等引用JAVA_HOME可以查找到JDK。PATH表示路徑,它的作用是指定命令搜索路徑,在命令行執(zhí)行命令如java或者javac(即搜索java.exe和javac.exe)時PATH負責提供關(guān)于這些命令存儲位置的搜索路徑。變量CLASSPATH的作用是提供類搜索路徑。2、環(huán)境變量設(shè)置1.2JDK的安裝與配置在桌面上將鼠標移至“此電腦”并按右鍵,單擊“屬性→高級系統(tǒng)設(shè)置-→高級→環(huán)境變量”;在系統(tǒng)變量列表的下面單擊“新建”,在如下圖所示的對話框中輸入變量名和值;下面以windows11為例說明JDK17環(huán)境變量的設(shè)置方法。1.2JDK的安裝與配置在系統(tǒng)變量列表中找到“Path”并雙擊,在對話框中“變量值”處將光標移到最后,加入“;%JAVA_HOME%\bin”;在系統(tǒng)變量列表的下面的“系統(tǒng)變量”中,單擊“新建”,在圖1.1所示的對話框的“變量名”處輸入“CLASSPATH”,在變量值處輸入:“.;%JAVA_HOME%\lib”C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.6IntelliJIDEA簡介與使用1.7小結(jié)1.3.1Javaapplication若把Java視為通用程序設(shè)計語言,則它和其他高級語言一樣,可編寫求解各種數(shù)據(jù)處理、科學計算、圖形圖像處理類問題的程序,即Java應用程序(Application)。下面通過一個簡單程序?qū)嵗f明其結(jié)構(gòu)特點?!纠?.1】寫一程序,顯示字符串“WelcometolearnJava!”。

Example1_01.java1.3.1Javaapplication(1)可在記事本中編輯Java源程序,正確地保存。包括正確的文件名和擴展名。(2)然后使用javac對源程序進行編譯。如果程序有錯誤,則重新編輯、修改、保存文件、再編譯。直到得到一個沒有任何問題的程序,就可以編譯生成與源文件相同名字但擴展名為.class的文件。(3)最后可以使用java執(zhí)行程序。1.3.1Javaapplication程序由至少一個類構(gòu)成,類是Java程序的模塊,Example1_01是類名,一般以大寫字母開頭。public和static是修飾符,為類和方法賦予不同的屬性。類中包含一個主方法main(),JVM通過調(diào)用main方法來執(zhí)行程序。System.out.println()用于程序輸出數(shù)據(jù),本例輸出的是一個字符串。

Java應用程序的結(jié)構(gòu)特點:1.3.1Javaapplication一個源程序中可以定義了多個類,但最多只允許一個類使用public修飾符,且程序保存要用帶有public修飾的類作為文件名,擴展名為.java。如果沒有類使用public修飾,一般用包含main方法的類名作為文件名,但這不是必須的,用別的類名保存也可以。包含main方法的類稱為主類。而用public修飾的類稱為公共類。1.3.2Java小程序-appletJava小應用程序(Applet)主要用于嵌入到網(wǎng)頁中,使靜態(tài)網(wǎng)頁動態(tài)化,使之具有交互性。小程序的執(zhí)行不再使用JVM運行,而是使用瀏覽器(Browser)內(nèi)置的Java解釋器運行,Java開發(fā)工具中提供的小程序查看器appletviewer.exe也可以執(zhí)行小程序?!纠?.2】寫一程序,顯示字符串WelcometolearnJava!

Example1_02.java1.3.2Java小程序-applet小程序的執(zhí)行需要嵌入到html代碼中。參見代碼Example1_2.html<HTMLlang="zh-CN"><HEAD><TITLE>MyFirstJavaApplet</title></HEAD><BODY>Here'smyfirstJavaApplet:<appletcode=Example1_02.classwidth=300height=40></applet></BODY></HTML>1.3.2Java小程序-applet類的定義方法不同于應用程序,小程序的類繼承于Applet類。小程序類內(nèi)部結(jié)構(gòu)不同:不用main方法。小程序中常見方法包括:初始化方法init、啟動方法start、停止方法stop、刪除方法destroy和繪圖方法paint,本例中使用了init和paint兩個方法。

Java小程序的結(jié)構(gòu)特點:1.3.3Module模塊系統(tǒng)module是Java9引入的一種新功能,目的是為了解決Jar包洪災問題。使用module開發(fā)java程序的方法如下:1.編寫module-info.java文件;modulefirst{}2.編寫程序,程序中使用module3.使用javac.exe進行程序編譯;C:/>JAVA>javac-dfirst*.java4.執(zhí)行程序,查看輸出結(jié)構(gòu)。C:/>JAVA>javafirst.ModuleTest程序運行結(jié)果如圖1.5所示。C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.6IntelliJIDEA簡介與使用1.7小結(jié)1.4Java程序注釋方法Java語言注釋有三種:單行注釋塊注釋文檔注釋(1)單行注釋,用符號“//”實現(xiàn)單行注釋,其后的所有字符都被視為注釋,主要對某個語句的注釋,一般放在所注釋的語句的上面或后面。1.4Java程序注釋方法(2)塊注釋,或多行注釋,塊注釋從/*開始,到*/結(jié)束,不能嵌套。//thisismainmethod/**ThisisJavablockremarks*formethodfunctionalityspecification*/(3)文檔注釋(Javadoccomment),文檔注釋從/**開始,到*/結(jié)束,主要用于描述數(shù)據(jù)、方法和類,使用JDK的javadoc命令能提取文檔注釋并形成幫助文檔。C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.6IntelliJIDEA簡介與使用1.7小結(jié)1.5.1Eclipse簡介Eclipse是開發(fā)Java程序的一種工具。Eclipse本身是用Java語言編寫的開發(fā)工具,但下載的壓縮包中并不包含Java運行環(huán)境,需要用戶自己另行安裝JRE。安裝Eclipse時只需將下載的壓縮包按原路徑直接解壓既可。下載的壓縮包解壓之后,雙擊運行eclipse.exe,會看到軟件界面如右圖所示。1.5.2Eclipse調(diào)試程序的方法Eclipse是一個集成開發(fā)環(huán)境,它包括創(chuàng)建項目01OPTION02OPTION03OPTION04OPTION編寫編譯運行調(diào)試其他輔助操作05OPTION06OPTION1.5.3Eclipse基本操作0201040301OPTION02OPTION03OPTION04OPTION程序中的錯誤包括語法錯誤、運行時錯誤和算法邏輯錯誤。編譯時可以找出語法錯誤,運行時可以發(fā)現(xiàn)算法和邏輯錯誤。在程序運行后,如果不能獲得預期的執(zhí)行結(jié)果,說明程序中潛藏著錯誤。通過調(diào)試找出問題代碼后進行修改,變成正確的程序。在Eclipse中調(diào)試的方法。C目錄ONTENTS1.2JDK的安裝與配置1.3Java程序結(jié)構(gòu)1.6IntelliJIDEA簡介與使用1.1Java語言簡介1.4Java程序注釋方法1.5Eclipse簡介與使用1.7小結(jié)1.6.1IntelliJIDEA簡介IntelliJIDEA也是一種Java編程語言開發(fā)的集成環(huán)境。IDEA在業(yè)界被公認為最好的Java開發(fā)工具,尤其在智能代碼助手、代碼自動提示等方面。下載的壓縮包解壓之后,雙擊運行安裝,運行后會看到軟件界面如右圖所示。1.6.2IDEA的基本操作IDEA有兩個版本:旗艦版Ultimate和社區(qū)版Community。與Eclipse類似,也是一個集成開發(fā)環(huán)境,它包括創(chuàng)建項目01OPTION02OPTION03OPTION04OPTION編寫編譯運行調(diào)試其他輔助操作05OPTION06OPTION1.6.2IDEA的基本操作1.建立Java項目選擇菜單“File→New→JavaProject”,命名項目,確認完成(finish)即可。2.創(chuàng)建包選中項目的src目錄,右擊“New→Package”,命名后確認。3.創(chuàng)建類、添加屬性和方法包名處選擇“New→Class”,輸入類名并按“Enter”鍵創(chuàng)建類,此時進入該類的設(shè)計窗口,在其中添加屬性和方法1.6.3IDEA調(diào)試程序的方法0201040301OPTION02OPTION03OPTION04OPTION打開欲調(diào)試的項目。在程序中待調(diào)試的代碼行的前方單擊設(shè)置斷點,或者將鼠標指針移動到代碼行,按快捷鍵Ctrl+F8加上斷點。在程序窗口中右擊,選擇“Run→Debug”,進入Debug模式。單步執(zhí)行。F8鍵用于單步調(diào)試,F(xiàn)7(stepinto)可以使調(diào)試跟蹤被調(diào)用的方法,按快捷鍵Shift+F8可以跳出方法,返回到主調(diào)方法處。小結(jié)Summary本章介紹了Java語言的產(chǎn)生、發(fā)展歷程和Java語言的主要特點。通過兩個簡單的程序說明了Java程序的類型和結(jié)構(gòu)特點。最后介紹了開發(fā)工具和開發(fā)環(huán)境的安裝和配置方法。這是學習和運用Java的基礎(chǔ)。人民郵電出版社謝謝觀賞Java程序設(shè)計海量圖書方便查詢免費申請樣書下載配套資源優(yōu)惠購書成為作者更多樣書申請和資源下載需求,請登錄人郵教育社區(qū)()囊括各大品類,您想要的應有盡有教師免費申請樣書,我們將安排快遞迅速送達教學視頻、PPT課件、教學案例、習題答案、模擬試卷等豐富資源免費下載教師可以申請最低折扣學生直接優(yōu)惠購買圖書歡迎寫文章/投稿,我們強大的編輯團隊將為您提供專業(yè)和高效的編輯出版服務人民郵電出版社2基本數(shù)據(jù)類型與運算Java程序設(shè)計第章C目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.1.1Unicode字符集Unicode字符集編碼是通用多八位編碼字符集(UniversalMultiple-OctetCodedCharacterSet)的簡稱,是由Unicode學術(shù)學會(UnicodeConsortium)制訂的字符編碼系統(tǒng),支持現(xiàn)今世界多種不同語言的書面文本的交換、處理及顯示。它為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。Unicode使用十六位二進制數(shù)字編碼,即四位十六進制數(shù),因此它最多可以為65536個字符編碼?!纠?.1】編程顯示Unicode字符集中從序號19966至40959的字符(中、日、韓文字)。

Example2_01.java2.1.2標識符Java程序中各種名字就是標識符。類名、方法名、數(shù)組名、符號常量名、標號名都是標識符。標識符命名規(guī)則:Unicode使用十六位二進制數(shù)字編碼,因此它最多可以為65536個字符編碼。在Unicode中包含了大部分國家的字母表,如拉丁字母、常用的漢字、希臘字母、日語、俄語、朝鮮語等多種語言的“字母”,目前已定義四萬多個字符。Java標識符為字母、下劃線、美元符號和數(shù)字等Unicode字符集中字符組成的長度不限的字符串,不能以數(shù)字做開頭字符。標識符不可以是關(guān)鍵字和保留字。2.1.2標識符下面是正確的標識符:下面是不正確的標識符:name年齡hao123fee$_status-date1_2_3月,日while@zhang2.1.3

關(guān)鍵字關(guān)鍵字也是語言中的詞匯(Token)。標識符是由程序員命名的,其意義是程序員賦予的,而關(guān)鍵字是語言系統(tǒng)定義且賦予了特定意義的字,在程序中不能用作其他目的。下面是一些關(guān)鍵字:docaseclassdoubleifC目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.2.1

變量與常量變量(Variable)在程序中用來存儲數(shù)據(jù)。按Java編碼規(guī)范,變量名用小寫字母。為了可讀性要求,使用一個或多個詞連起來組成變量時,除了第一個詞,其他詞首字母均大寫。變量在用前需要聲明,聲明語法如下:數(shù)據(jù)類型定義符變量名表列;例如:intx,y,z;charc1,c2;1、變量2、常量常量分為符號常量(SymbolicConstant)和直接量(LiteralConstant)兩種。Java符號常量與變量語法接近,如:finaldatatypesymbolic-constant=constant-value;例如,定義數(shù)學常數(shù)PI:finaldoublePI=3.14159;2.2.1變量與常量符號常量在程序運行過程中其值不可以改變,符號常量一般用大寫字母。2.2.2基本數(shù)據(jù)類型在計算機中,不同類型的數(shù)據(jù)其存儲形式和處理方式不同,所以要對數(shù)據(jù)區(qū)分類型。Java語言本身定義的數(shù)據(jù)類型稱為基本類型。基本數(shù)據(jù)類型布爾型字符型浮點型整型字節(jié)byte、短整型short、基本整型int、長整型long單精度float和雙精度doublecharboolean2.2.2基本數(shù)據(jù)類型整型數(shù)可以用二進制、八進制、十進制和十六進制表示。

二進制:以0b開頭,由數(shù)字0和1組成,如0b001111101000。為了提高二進制數(shù)的可讀性,數(shù)字中間可以用“_”分隔,如

0b0011_1110_1000八進制:以0開頭,由數(shù)字0~7組成,如0176,而089則不對。十進制:日常使用的進制,由數(shù)字0~9組成,如123。十六進制:以0x或0X開頭,由數(shù)字0~9及字母a~f(大寫也可)組成,如0x12EF、0Xabed等。1、整型數(shù)2.2.2基本數(shù)據(jù)類型整型數(shù)默認類型為int型。如123456789、-456等。如果想表示一個長整型數(shù),由需要在數(shù)字后面加L或l(小寫)如123456789L、-456l都為長整型數(shù)。給byte和short型變量賦值時不要超出數(shù)據(jù)范圍。1、整型數(shù)2.2.2基本數(shù)據(jù)類型浮點型數(shù)可以用十進制和指數(shù)形式表示。浮點型常量默認為雙精度數(shù),如123.45為雙精度數(shù)。浮點數(shù)后加F或f表示單精度數(shù),浮點數(shù)后加D或d表示雙精度數(shù),如123.45F為單精度數(shù)。浮點數(shù)有8位有效數(shù)字,而雙精度為16位。十進制:如123.45、45.、和45.0等都是浮點型數(shù)。指數(shù)形式:又稱科學記數(shù)法。如1.23*105,在Java程序中可以寫成1.23E5。用E或e表示指數(shù)部分,E或e前面必須有數(shù)字,后面必須是一個整數(shù)。2、浮點型數(shù)2.2.2基本數(shù)據(jù)類型字符常量是一個字符,占兩個字節(jié)(16位),表示時用單引號引起,如’8’、’a’和’中’等。有些字符不能用本身的字符直接表示出來,如換行符,則可以用轉(zhuǎn)義字符來表示。轉(zhuǎn)義字符是用字符’\’和其它字符組合的字符,如表所示。轉(zhuǎn)義序列名稱Unicode\b退格鍵\u0008\tTab鍵\u0009\n換行符號\u000A\f進紙\u000C\r回車鍵\u000D\\反斜杠\u005C\’單引號\u0027\”雙引號\u00223、字符型數(shù)2.2.2基本數(shù)據(jù)類型4、布爾型數(shù)布爾型數(shù)又稱邏輯型數(shù),它只有兩個常量:true和false,用于表示“真”和“假”。類型名變量定義符常量格式數(shù)據(jù)長度和范圍字節(jié)整型byte2、8、10、16進制1字節(jié),-27~27-1短整型short2、8、10、16進制2字節(jié),-215~215-1基本整型int2、8、10、16進制4字節(jié),-231~231-1長整型long2、8、10、16進制8字節(jié),-263~263-1單精度浮點型float小數(shù)點格式、科學計數(shù)法4字節(jié),1.4e-45~3.4028235e38、-3.4028235e38~-1.4e-452.2.2基本數(shù)據(jù)類型數(shù)據(jù)類型說明類型名變量定義符常量格式數(shù)據(jù)長度和范圍雙精度浮點型double小數(shù)點格式、科學計數(shù)法8字節(jié),4.9e-324~1.7976931348623157e308、-1.7976931348623157e308~-4.9e-324字符型char單引號擴起2字節(jié),Unicode字符布爾型boolean

1字節(jié),true和false2.2.2基本數(shù)據(jù)類型數(shù)據(jù)類型說明2.2.3基本類型數(shù)據(jù)的輸入輸出程序運行時,需要從輸入設(shè)備中讀取數(shù)據(jù);程序處理完數(shù)據(jù)后,應將結(jié)果輸出到輸出設(shè)備。所以程序應具備輸入、輸出功能。1、輸入可以利用Scanner類的對象及其方法進行基本數(shù)據(jù)類型數(shù)據(jù)的輸入。輸入時應該先創(chuàng)建Scanner類的對象。創(chuàng)建Scanner對象的方法:Scannerinput=newScanner(System.in);輸出數(shù)據(jù)時使用:System.out.println(輸出的數(shù)據(jù));2.2.3基本類型數(shù)據(jù)的輸入輸出【例2.2】輸入10名學生的數(shù)學成績(百分制),計算平均分(保留小數(shù)點后兩位數(shù)字)。Example2_02.java1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出類型方法bytenextByte()shortnextShort()intnextInt()longnextLong()booleannextBoolean()floatnextFloat()doublenextDouble()1、輸入利用Scanner類中的方法可以從鍵盤讀入基本類型的數(shù)據(jù),如表所示。2.2.3基本類型數(shù)據(jù)的輸入輸出使用下面兩個方法可以從鍵盤獲得一個字符。第一種方法,利用Scanner類的next()方法讀取字符串,再從串中取出字符。Scannersc=newScanner(System.in);Strings=sc.next();charc=s.charAt(0);1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出第二種方法,利用System類in屬性直接調(diào)用read()方法讀入字符。charc;try{c=(char)System.in.read();}catch(Excptione){}1、輸入2.2.3基本類型數(shù)據(jù)的輸入輸出輸出基本類型的數(shù)據(jù)可以用System.out中方法:print、println和printf。調(diào)用print()方法時必須帶且只能帶有一個基本數(shù)據(jù)類型的參數(shù),它輸出數(shù)據(jù)后不換行。調(diào)用println()方法時可以不帶參數(shù),如果不帶參數(shù)則輸出一個換行;如果帶參數(shù)只能帶一個基本數(shù)據(jù)類型的參數(shù),輸出參數(shù)的值并換行。2、輸出2.2.3基本類型數(shù)據(jù)的輸入輸出如果用print()或println()一次輸出多個數(shù)據(jù),則應將多個數(shù)據(jù)變成一個數(shù)據(jù)后再調(diào)用這兩個方法輸出。如語句

System.out.println(”AverageScore=”+average);用print()寫成等價語句:System.out.print(“AverageScore=“);System.out.print(average);System.out.print(“\n”);或最后一條語句寫成:System.out.println();2、輸出2.2.3基本類型數(shù)據(jù)的輸入輸出printf()用于有格式的數(shù)據(jù)輸出。它的使用方法:printf(格式控制字符串,輸出項表列);%d:輸出int型數(shù)據(jù)。%c:輸出char型數(shù)據(jù)。%f:輸出浮點型數(shù)據(jù),小數(shù)部分最多保留6位。%s:輸出字符串型數(shù)據(jù)??梢栽O(shè)置輸出數(shù)據(jù)的寬度,格式如下:%md:輸出int型數(shù)據(jù)占m位。%m.nf:輸出浮點型數(shù)據(jù)占m位,小數(shù)點后保留n位數(shù)字?!案袷娇刂谱址庇善胀ㄗ址透袷娇刂平M成。普通字符原樣輸出,格式控制字符主要有下面的字符:2、輸出2.2.4var類型var是Java10版本中新出的特性,用它來定義局部變量。var的變量類型會由JVM自動推斷,因此可不用給出。使用var定義變量的語法:var變量=初始值;var可以用在forloop中:for(varele:eleList){//dosomethingforelement}2.2.4var類型

或者用在標準的for循環(huán):for(vari=0;i<eleList.size();i++){System.out.println(eleList.get(i));}因為var是本地變量類型,它不能用在類變量的定義、方法變量、構(gòu)造函數(shù)、方法返回等地方。C目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字2.3.1算術(shù)運算符表2.5

算術(shù)運算符運算符含義示例結(jié)果+加3+47-減3-4-1*乘3*412/除1.0/2.01/20.50%求余20%322.3.1算術(shù)運算符求余結(jié)果按a%b=a-a/b*b計算。例如:System.out.println(11%2);

//結(jié)果為1System.out.println(11%-2);

//結(jié)果為1System.out.println(-11%2);

//結(jié)果為-1System.out.println(-11%-2);

//結(jié)果為-1結(jié)論:余數(shù)的符號取決于前面的數(shù)的符號。

2.3.1算術(shù)運算符算術(shù)運算符中還有使變量增1或減1的運算:++、--運算符在變量前稱為前綴運算,運算符在變量后稱后綴運算,如:++var或var--。前綴和后綴對變量本身都是加1或減1,但運算過程不同。如下:intx=10,y;y=++x;intx=10,y;y=x++;2.3.2

關(guān)系運算符關(guān)系運算是一種比較運算,用于比較兩個量大小關(guān)系的運算。關(guān)系運算符有6種:==、!=、>、>=、<、<=(前兩個優(yōu)先級低)如:x+y>=a*b、i==j+k

關(guān)系運算的結(jié)果是邏輯值。

關(guān)系運算符的結(jié)合性是從左向右。2.3.3邏輯運算符邏輯運算是一種連接運算,可以將多個關(guān)系表達式連接成一個表達式。按優(yōu)先級從高到低有:!(一元邏輯非)、&&、||如數(shù)學不等式“a<x<=b”寫成Java表達式:a<x&&x<=b

再如數(shù)學不等式“x>y或a<b”,寫成Java表達式:x>y||a<b!的結(jié)合性從右向左,&&和||的結(jié)合性從左向右。2.3.4位運算符位運算符有七個:

&(位與)、|(位或)、^(位異或)、~(位非)、<<(位左移)、>>(位右移)、>>>(用零擴展的右移)。(1)位與運算對應的二進制位按位進行與運算。如a=102、b=59,則a&b=34,運算過程如下所示:

01100110

(a)&00111011

(b)

00100010

2.3.4位運算符(2)位或運算對應的二進制位按位進行或運算。如a=102、b=59,則a|b=127,運算過程如下所示:01100110(a)^00111011

(b)

01011101

2.3.4位運算符(3)位異或運算對應的二進制位按位進行異或運算。異或運算是取不同,當對應位不同時為1,相同時為0。如a=102、b=59,則a^b=93,運算過程如下所示:

01100110

(a)^00111011

(b)

01011101

2.3.4位運算符(4)位非運算對應的二進制位按位取反運算。如a=102,則~a=-103運算過程如下所示:~01100110

(a)10011001

數(shù)據(jù)在計算機內(nèi)部是用補碼表示的,高位為1表示負數(shù)。2.3.4位運算符(5)位左移運算將一個數(shù)的各個二進位順序往左移動若干位,移出的位舍棄,右側(cè)空出位補0。如a=102、n=3,則a<<n=816,運算過程如下所示:

將a往左移n位,相當于a*2n。移位運算比乘2運算快。

01100110<<3(a)01100110000

2.3.4位運算符(6)位右移運算將一個數(shù)的各個二進位順序往右移動若干位,移出的位舍棄,左側(cè)空出位補符號位。如a=102、n=3,則a>>n=12,運算過程如下所示:本例中,將a往右移n位,相當于a/2n。移位運算比除2運算快。01100110

>>3(a)01100110

2.3.4位運算符(7)用零擴展的位右移運算用零擴展的右移位運算符移位時,空出高位用0補充,而>>運算則用原來的高位值

補充。下圖說明>>>和>>的區(qū)別。如inta=-102,則a>>3=-13,而a>>>3=536870899。2.3.5賦值運算符數(shù)學中的“=”在Java語言中稱為賦值運算符。賦值運算符的語法形式:“=”左側(cè)一定是一個變量,它可以將表達式的值賦給變量。如:賦值運算符與算術(shù)運算符和移位運算符結(jié)合可以得到自反賦值運算符。如:+=、-=、*=、/=、%=、>>=、>>>=、<<=、&=、^=、|=等。變量=表達式x=y+z表達式:x*=y+z等價于:x=x*(y+z)2.3.6條件運算符條件運算符“?:”是一個三目運算符。它的語法形式:關(guān)系或邏輯表達式?表達式1:表達式2如果“關(guān)系或條邏輯表達式”的值為true,則整個表達式的值就是“表達式1”的值,否則就是“表達式2”的值。有些情況下,可以用條件運算符代替if-else語句。01OPTION02OPTION03OPTION04OPTION2.3.7其他運算符其他運算符包括:new、instanceof、()、[]和.等。new運算符用于為數(shù)組分配內(nèi)存和調(diào)用構(gòu)造方法創(chuàng)建對象;instanceof運算符用于判斷一個對象是否是一個類的實例;“()”用于表達式和方法定義與調(diào)用;“[]”是下標運算符,用于定義數(shù)組和訪問數(shù)組元素;“.”是分量運算符,可以通過該運算符訪問對象中的成員。05OPTION2.3.8

表達式1、表達式由操作數(shù)和運算符組成表達式。使用的運算符不同,構(gòu)成的表達式不同。010203040506有6類表達式算術(shù)運算表達式關(guān)系運算表達式邏輯運算表達式位運算表達式賦值運算表達式條件運算表達式2.3.8

表達式1、表達式使用表達式需要注意兩個問題:運算符的優(yōu)先級和結(jié)合性操作數(shù)的數(shù)據(jù)類型轉(zhuǎn)換方法2.3.8

表達式2、類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換方法有以下兩種:

4+6.78(1)自動轉(zhuǎn)換,或稱之為隱式轉(zhuǎn)換。表達式在計算過程中,參與運算的操作數(shù)會根據(jù)操作數(shù)的類型進行自動轉(zhuǎn)換。觀察下面的表達式:自動轉(zhuǎn)換需按照數(shù)值精度從“低”到“高”。不同類型數(shù)據(jù)的從小到大的順序為:

byte->short->char->int->long->float->double。2.3.8表達式形式:變量=表達式2、類型轉(zhuǎn)換如“1/3”運算結(jié)果為0。如果想得到0.333,則需要進行強制轉(zhuǎn)換“(double)1/3”,將1強制轉(zhuǎn)換為1.0。注意:inta=10,b=90;及表達式:(double)(a/b)表達式:(double)a/b(2)強制轉(zhuǎn)換,或稱之為顯式轉(zhuǎn)換。C目錄ONTENTS2.2基本數(shù)據(jù)類型2.3運算符和表達式2.4小結(jié)2.1標識符與關(guān)鍵字小結(jié)Summary本章系統(tǒng)地、詳細地介紹了Java基礎(chǔ)語法知識,包括字符集、標識符、關(guān)鍵字基本數(shù)據(jù)類型、運算符和表達式。有些難懂的內(nèi)容給出了圖形示意和實例展示,目的是讓初學者有直觀印象,便于接受。人民郵電出版社謝謝觀賞Java程序設(shè)計海量圖書方便查詢免費申請樣書下載配套資源優(yōu)惠購書成為作者更多樣書申請和資源下載需求,請登錄人郵教育社區(qū)()囊括各大品類,您想要的應有盡有教師免費申請樣書,我們將安排快遞迅速送達教學視頻、PPT課件、教學案例、習題答案、模擬試卷等豐富資源免費下載教師可以申請最低折扣學生直接優(yōu)惠購買圖書歡迎寫文章/投稿,我們強大的編輯團隊將為您提供專業(yè)和高效的編輯出版服務人民郵電出版社3控制語句Java程序設(shè)計第章導讀Introduction一個Java程序由一個或多個類組成,即類是組成Java程序的基本單位。而每一個類由域(field)和方法(method)組成,而方法是由若干條語句組成的。所以,編寫Java程序必須先從語句開始。本章中將要詳細講解Java語言中的控制語句。C目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.1控制語句在實際處理數(shù)據(jù)的過程中,同一問題的不同情況需要采用不同的方法來處理,即一個程序能夠處理同一問題的所有情況。要使程序能夠正確處理數(shù)據(jù),必須要有相應的控制語句實現(xiàn)程序的控制轉(zhuǎn)移。有些問題需要采用同一方法反復迭代計算才能得到結(jié)果,這需要程序能夠控制迭代過程,這樣迭代過程可以看作是循環(huán)過程。

Java語言提供了完善的控制語句,能夠?qū)崿F(xiàn)程序設(shè)計所需要的程序結(jié)構(gòu)。Java語言中有順序語句、選擇語句、循環(huán)語句和轉(zhuǎn)移語句。C目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.2

順序結(jié)構(gòu)如果一個方法在運行過程中,語句的執(zhí)行順序是按照語句在方法中的物理順序而執(zhí)行,這種執(zhí)行過程稱為順序執(zhí)行,對應的程序結(jié)構(gòu)應稱為順序結(jié)構(gòu)?!纠?.1】求一元二次方程ax2+bx+c=0的根。其中a≠0,b2-4ac>0。Example3_1.javaC目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.3.1if語句1、

簡單的if語句簡單的if語句的語法形式:if(條件表達式)

語句簡單的if語句的執(zhí)行過程如圖?!纠?.2】將三個整數(shù)按由小到大的順序排列并輸出。Example3_2.java3.3.1if語句2、

if-else語句if-else語句的語法形式:if(條件表達式)

語句1

else

語句2if-else語句的執(zhí)行過程如圖?!纠?.3】給定兩個整數(shù),輸出這兩數(shù)中的大數(shù)。Example3_3.java3.3.1if語句3、嵌套的if語句簡單的if語句只能處理一種情況,if-else語句可以處理兩種情況。但是,實際上很多問題更復雜,有更多種情況,這樣的問題就得用嵌套的if語句來處理??梢詫f或if-else語句作為其他if和if-else的子句,這樣就形成了if語句的嵌套。如下的幾種形式:if(條件1)if(條件2)

語句形式1:if(條件1)if(條件11)

語句1elseif(條件2)

語句2形式2:3.3.1if語句3、嵌套的if語句形式3:形式4:if(條件1)if(條件11)

語句1else

語句2if(條件1){if(條件11)

語句1}elseif(條件2)

語句23.3.1if語句3、嵌套的if語句【例3.4】運費問題。貨運公司承接用戶的運貨請求時,會根據(jù)貨運里程給客戶一定的優(yōu)惠折扣。當貨運里程在500km(不包括500km)以內(nèi)時,沒有折扣;當貨運里程在1000km(不包括1000km)以內(nèi)時,減免客戶5%的運費;當貨運里程在1500km(不包括1500km)以內(nèi)時,減免客戶8%的運費;當貨運里程在2500km(不包括2500km)以內(nèi)時,減免客戶10%的運費;當貨運里程超過2500km時,減免客戶12%的運費。給定用戶貨物重量、貨運里程及單位運費(每噸公里運費),編程計算用戶應支付的運費。Example3_4.java3.3.1if語句4、衍生的if-elseif語句實際程序設(shè)計時,嵌套層數(shù)過多就會降低程序的可讀性,所以在編寫程序時嵌套的層數(shù)應盡量少。

Java語言對程序的語法格式?jīng)]有嚴格要求,一行可以寫多條語句。對于嵌套的if語句,將每一個else下一行的if語句往上提一行,與else在同一行,就會形成if-elseif形式的語句。

【例3.5】改寫例【例3.4】的程序,形成if-elseif語句形式。Example3_5.java3.3.1if語句4、衍生的if-elseif語句if-elseif結(jié)構(gòu)的一般形式:

if(條件表達式1)語句1elseif(條件表達式2)語句2…elseif(條件表達式n)語句nelse語句n+13.3.1if語句4、衍生的if-elseif語句if-elseif語句的執(zhí)行過程如圖?!纠?.6】改寫【例3.1】,使程序能夠求解出任何一個二元一次方程的根。Example3_6.java

3.3.2switch語句switch語句的語法形式:switch(表達式){case常量1:語句塊1;break;case常量2:語句塊2;break;…case常量n:語句塊n;break;default:語句塊n+1;}3.3.2switch語句【例3.7】將學生的成績等級轉(zhuǎn)換成對應的百分制成績。成績對應關(guān)系:A——85~100,B——70~84,C——60~69,D——不合格。編寫s程序,輸入學生的成績等級,輸出對應的百分制成績。

Example3_7.javaswitch語句的執(zhí)行過程?!?.3.2switch語句break語句不是switch語句中必須的語句。如果將上例中的break語句去掉,switch語句變成下面形式:

switch(grade.charAt(0)){case'A':System.out.println("百分成績?yōu)椋?5~100.");case'B':System.out.println("百分成績?yōu)椋?0~84.");case'C':System.out.println("百分成績?yōu)椋?0~69.");case'D':System.out.println("成績不合格。");default:System.out.println("輸入錯誤。");}3.3.2switch語句沒有break語句的switch語句的執(zhí)行過程。3.3.2switch語句多個case還可以共用一組語句。【例3.8】給出年月,輸出該月的天數(shù)。Example3_8.java改寫后的上例。Example3_8a.java【例3.9】用switch語句改寫【例3.4】。Example3_9.javaC目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.4.1while循環(huán)while語句的語法形式:while(條件表達式)

語句(又稱循環(huán)體)while語句的執(zhí)行過程。3.4.1while循環(huán)【例3.10】計算1+2+3+…100值。設(shè)sum表示和值,i表示其中的某一個數(shù)。開始時 sum=0; i=1;可以寫出下面的計算過程:第1次sum=sum+i;i++;第2次sum=sum+i;i++;第3次sum=sum+i;i++;...sum=sum+i;i++;第100次sum=sum+i;i++;Example3_10.java3.4.2do-while循環(huán)do-while語句的語法形式:

do

循環(huán)體

while(條件表達式);do-while語句的執(zhí)行過程:【例3.11】用下面的多項式計算圓周率的近似值,直到其中某一項的絕對值小于或等于10-6。pi/4=1-1/3+1/5-1/7+…Example3_11.java▲▲▲▲▲▲▲▲3.4.3for循環(huán)for循環(huán)的語法形式:for(表達式1;條件表達式;表達式2)

循環(huán)體for循環(huán)的執(zhí)行過程:【例3.12】用for循環(huán)改寫【例3.10】。Example3_12.java▲▲▲▲▲▲▲▲3.4.3for循環(huán)【例3.13】判斷一個正整數(shù)是否是素數(shù)。所謂素數(shù)是指,如果一個數(shù)如果只能被1和自身整除,則該數(shù)是素數(shù),又稱質(zhì)數(shù)。Example3_13.java在“2~x平方根”之間找x的因子:Example3_13a.java3.4.3for循環(huán)for語句可以寫成幾種不同的形式。 sum=0; i=1;

for(;i<=100;i++)sum+=i;形式1:沒有表達式1,變量i的初始化在for之前用賦值語句實現(xiàn)。3.4.3for循環(huán) sum=0;

for(i=1;i<=100;) {

sum+=i;

i=i+1;

}形式2:沒有表達式2,變量i的改變放在循環(huán)體中,成為循環(huán)體中的一條

語句。3.4.3for循環(huán) sum=0;

for(i=1;;i++)

{sum+=i;if(i>=100)break;

}形式3:沒有條件表達式,循環(huán)結(jié)束的條件也在循環(huán)體中判斷,其中的

break語句用于結(jié)束循環(huán)。3.4.3for循環(huán) sum=0; i=1;

for(;i<=100;)

{sum+=i;i++;

}形式4:沒有表達式1和表達式2。3.4.3for循環(huán)

sum=0; i=1;

for(;;)

{sum+=i;if(i>=100)break;i++;}形式5:三個表達式都沒有。形式6:循環(huán)體是空循環(huán)體。for(sum=0,i=1;i<=100;sum+=i,i++);3.4.4循環(huán)的嵌套循環(huán)的循環(huán)體中可以是任何Java語句。如果循環(huán)體中再有循環(huán)語句,則構(gòu)成循環(huán)的嵌套。以下是幾種循環(huán)的嵌套形式:形式1:形式2:for(…)

while() {…}while(…)

do {…} while(…);3.4.4循環(huán)的嵌套【例3.14】求出100以內(nèi)的所有素數(shù)。Example3_14.javado

for(…) {…}while(...);形式3:while(…)

while(…) {…}形式4:C目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.5

選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套在實際編程過程中,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)兩種結(jié)構(gòu)經(jīng)常混用,也可以稱兩種結(jié)構(gòu)的嵌套。同循環(huán)的嵌套一樣,選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套也沒有固定形式。多數(shù)情況下,循環(huán)結(jié)構(gòu)中嵌套選擇結(jié)構(gòu)。C目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句3.6.1break語句break語句用在循環(huán)語句中,用于結(jié)束循環(huán)。break語句可以分為基本的break語句和帶標號的break語句。1、基本的break語句break語句的語法形式:

break;break語句的作用是,使它所在的循環(huán)完全結(jié)束,不管后面還有多少次循環(huán),都不再執(zhí)行。【例3.15】為【例3.14】增加break語句。Example3_15.java3.6.1break語句2、帶標號的break語句帶標號的break語句的語法形式:

標號:循環(huán)語句

break標號;標號是任何合法的標識符?!纠?.16】找出從45開始的若干個素數(shù),直到某一個非素數(shù)的因子大于10為止。Example3_16.java帶標號的break語句的作用是,使“標號”處所指向的循環(huán)提前結(jié)束。3.6.2continue語句1、基本的continue語句continue語句的語法形式:

continue;continue語句的作用是:結(jié)束continue所在循環(huán)的當前一次循環(huán),如果其后還有循環(huán),則繼續(xù)執(zhí)行循環(huán)?!纠?.17】從鍵盤輸入若干個正整數(shù),將其中不能被3整除的數(shù)累加在一起,并輸出其和,當輸入負數(shù)時結(jié)束。Example3_17.java3.6.2continue語句2、帶標號的continue語句帶標號的continue語句的語法形式:標號:循環(huán)語句continue標號;帶標號的continue語句的作用是:使標號所指的循環(huán)的當前循環(huán)結(jié)束,而不是結(jié)束整個循環(huán)?!纠?.18】用continue語句重寫【例3.14】。Example3_18.javaC目錄ONTENTS3.2順序結(jié)構(gòu)3.3選擇結(jié)構(gòu)3.7小結(jié)3.1控制語句3.4循環(huán)結(jié)構(gòu)3.5選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套3.6break語句與continue語句小結(jié)SummaryJava語言中有三種程序結(jié)構(gòu),分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)的程序按照語句在程序中的物理位置順序執(zhí)行,這是一種最基本的結(jié)構(gòu)。選擇結(jié)構(gòu)可以用if、if-else和switch語句來實現(xiàn)。循環(huán)結(jié)構(gòu)有三種語句,分別是while、do-while和for。實際編寫程序過程中,三種循環(huán)可以互相代替。for循環(huán)是三種循環(huán)中最常用的循環(huán)??梢杂胋reak語句或continue語句提前結(jié)束循環(huán)。break語句和continue語句還可以帶標號,可以對程序進行更靈活的控制人民郵電出版社謝謝觀賞Java程序設(shè)計海量圖書方便查詢免費申請樣書下載配套資源優(yōu)惠購書成為作者更多樣書申請和資源下載需求,請登錄人郵教育社區(qū)()囊括各大品類,您想要的應有盡有教師免費申請樣書,我們將安排快遞迅速送達教學視頻、PPT課件、教學案例、習題答案、模擬試卷等豐富資源免費下載教師可以申請最低折扣學生直接優(yōu)惠購買圖書歡迎寫文章/投稿,我們強大的編輯團隊將為您提供專業(yè)和高效的編輯出版服務人民郵電出版社4數(shù)組Java程序設(shè)計第章導讀Introduction用數(shù)組可以保存多個數(shù)據(jù)。數(shù)組中每一項稱為一個元素,一個數(shù)組中包含多個元素,每一個元素相當于一個變量,所以使用數(shù)組可以表示大量的數(shù)據(jù)。C目錄ONTENTS4.2多維數(shù)組4.3命令行參數(shù)4.1一維數(shù)組4.4可變參數(shù)列表4.5小結(jié)4.1.1一維數(shù)組的聲明數(shù)組用一個標識符和下標來表示,下標可以區(qū)分數(shù)組中不同的元素。如果一個數(shù)組只有一個下標,則稱為一維數(shù)組。有兩個下標,則為二維數(shù)組。一般只用到三維數(shù)組,而一維和二維數(shù)組較常用。數(shù)據(jù)類型[]數(shù)組名;或數(shù)據(jù)類型數(shù)組名[];數(shù)組使用前必須先聲明。聲明數(shù)組的語法形式:4.1.1一維數(shù)組的聲明例如:注意,下標[]在數(shù)組名前或在數(shù)組名后是有區(qū)別的。如:int[]a,b;//a和b都是一維數(shù)inta[],b[];inta[],b;//a是一維數(shù)組名,而b是普通變量。4.1.2為一維數(shù)組分配空間new數(shù)據(jù)類型[數(shù)組長度]要想使用這個數(shù)組,可以與前面聲明的數(shù)組名結(jié)合,通過數(shù)組名訪問數(shù)組中的元素。如:數(shù)組聲明后并沒有內(nèi)存空間。如果想真正使用一個數(shù)組,必須為一維數(shù)組分配內(nèi)存空間,即創(chuàng)建一維數(shù)組。創(chuàng)建一維的語法形式:a=newint[10];也可以將數(shù)組聲明與創(chuàng)建寫成一條語句:inta[]=newint[10];4.1.3數(shù)組的內(nèi)存模型表達式“newint[10]”創(chuàng)建了一個數(shù)組,同時該表達式的值是數(shù)組在內(nèi)存中的地址。賦值表達式“a=newint[10]”是將數(shù)組的起始地址保存在變量a中。因此,訪問變量a就可以得到數(shù)組在內(nèi)存中的起始地址,從而可以訪問到數(shù)組中的各個元素。4.1.4訪問一維數(shù)組元素數(shù)組名[下標表達式]最小下標為0,最大下標為“數(shù)組長度-1”創(chuàng)建數(shù)組后就可以使用數(shù)組中的元素了。數(shù)組中元素的訪問方式為:任何一個數(shù)組都有屬性length?!纠?.1】一維數(shù)組的使用。Example4_01.java4.1.5

一維數(shù)組初始化數(shù)據(jù)類型數(shù)組名[]={初始值表列};例如:在聲明數(shù)組名時,直接為數(shù)組元素賦初值,稱數(shù)組初始化。數(shù)組初始化的語法形式:inta[]={1,3,5,7,9};4.1.5

一維數(shù)組初始化【例4.2】將若干個整數(shù)按由小到大的順序排列。本例中采用選擇法排序。基本方法:第一趟1022-527342

i

k第二趟-5222107342

↑↑

ik

4.1.5

一維數(shù)組初始化如果有n個數(shù)需要排序,則需要進行n-1趟的排序。第i趟的排序需要進行n-i次比較。Example4_02第三趟-5210227342

i,k

第四趟-5210227342

↑↑

ik4.1.6

使用增強型循環(huán)訪問數(shù)組元素for(變量a的聲明:數(shù)組名)循環(huán)體循環(huán)執(zhí)行時,會將數(shù)組的當前元素賦給變量a,在循環(huán)體中使用變量a就相當于使用數(shù)組中的某一個元素。除了第3章講過的for語句外,還有一種增強型的for循環(huán),其語法形式如下:【例4.3】增強型的for循環(huán)。Example4_03.javaC目錄ONTENTS4.2多維數(shù)組4.3命令行參數(shù)4.4可變參數(shù)列表4.1一維數(shù)組4.5小結(jié)4.2.1

二維數(shù)組的聲明有兩個或兩個以上下標的數(shù)組稱為多維數(shù)組。本節(jié)只講二維數(shù)組的定義和使用。二維數(shù)組的聲明形式為:數(shù)據(jù)類型數(shù)組名[][];或數(shù)據(jù)類型[][]數(shù)組名;或數(shù)據(jù)類型[]數(shù)組名[];例如:inta[][],b[];注意:inta[][],b;int[]a[],b;int[][]a,b;4.2.2為二維數(shù)組分配空間一個二維數(shù)組各行的元素個數(shù)都一樣,可以像下面形式分配內(nèi)存空間:inta[][]=newint[3][4];如果二維數(shù)組各行的元素個數(shù)不一樣,則需要為每一行單獨分配內(nèi)存空間。如:inta[][]=newint[3][];a[0]=newint[3];//第0行有3個元素a[1]=newint[5];//第1行有5個元素a[2]=newint[8];//第2行有8個元素4.2.3訪問二維數(shù)組元素創(chuàng)建數(shù)組后,就可以訪問數(shù)組中的元素了。訪問形式為:數(shù)組名[下標表達式1][下標表達式2]下標同樣是從0開始,不能越界。

通過訪問屬性length可以知道一個二維數(shù)組有幾行、每一行有多少個元素。如a是一個二維數(shù)組,則a.length的值是數(shù)組的行數(shù),a[i].length是第i行元素的個數(shù)。【例4.4】訪問二維數(shù)組,輸出數(shù)組地址和數(shù)組元素。Example4_04.java4.2.4二維數(shù)組初始化在聲明二維數(shù)組的同時也可以給數(shù)組各元素賦初值。初始化形式:數(shù)據(jù)類型數(shù)組名[][]={初值表列};初始化時每一行的元素值應該單獨用{}括起來:inta[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};intb[][]={{2,4},{6,8,10},{12,14,16,18}};【例4.5】編程序?qū)崿F(xiàn)兩個矩陣的乘法運算。Example4_05.javaC目錄ONTENTS4.2多維數(shù)組4.3命令行參數(shù)4.1一維數(shù)組4.4可變參數(shù)列表4.5小結(jié)4.3.1命令行參數(shù)的概念如果程序在運行過程中需要數(shù)據(jù),可以通過輸入設(shè)備輸入數(shù)據(jù)。如果程序在開始運行時,就需要輸入數(shù)據(jù),則可以將數(shù)據(jù)作為命令的參數(shù)輸入給程序。多數(shù)情況下,按下面形式運行一個Java程序:c:\>javaExample4_06則后面的“123”、“Beiing”、“Road”稱為命令“Example4_06”的參數(shù)?!癹avaExample4_06”是命令行。Example4_06是一個Java程序,但是從操作系統(tǒng)看,它是一個命令。如果運行時寫成下面的形式:c:\>javaExample4_06123BeijingRoad4.3.2命令行參數(shù)的獲取與使用任何一個程序都必須有main方法,main方法的定義形式為:publicstaticvoidmain(Stringargs[]){}程序在運行時,操作系統(tǒng)會將命令行參數(shù)依次放入到對象數(shù)組的每一個元素中?!纠?.6】通過命令行輸入兩個整數(shù),計算這兩個整數(shù)的和。

Example4_06.javaC目錄ONTENTS4.2多維數(shù)組4.3命令行參數(shù)4.1一維數(shù)組4.4可變參數(shù)列表4.5小結(jié)

Java給方法提供了可變長參數(shù)(varargs)的形式。形式如下:返回類型方法名(一般形式的形參列表,形參類型...可變長形參名){......}

說明:可變長的參數(shù),必須在最右側(cè),并且這樣的參數(shù)中只能一個。【例4.7】通過命令行輸入若干個整數(shù),計算這些整數(shù)的和。

Example4_07.java小結(jié)Summary使用數(shù)組可以在程序中表示大量的數(shù)據(jù)。數(shù)組可以是一維、二維、三維、或更高維,一般地一維和二維數(shù)組較常使用。數(shù)組在使用之前必須先聲明數(shù)組名、使用new運算符創(chuàng)建數(shù)組,也可以通過初始化的方式創(chuàng)建數(shù)級,數(shù)組創(chuàng)建后就可以使用數(shù)組中的元素了。訪問數(shù)組元素時下標不能越界,任何一個數(shù)組都可以通過數(shù)組名訪問屬性length確定數(shù)組的長度。如果想在程序開始運行時就給程序輸入數(shù)據(jù),可以通過在命令行放置參數(shù)的方式實現(xiàn)。人民郵電出版社謝謝觀賞Java程序設(shè)計海量圖書方便查詢免費申請樣書下載配套資源優(yōu)惠購書成為作者更多樣書申請和資源下載需求,請登錄人郵教育社區(qū)()囊括各大品類,您想要的應有盡有教師免費申請樣書,我們將安排快遞迅速送達教學視頻、PPT課件、教學案例、習題答案、模擬試卷等豐富資源免費下載教師可以申請最低折扣學生直接優(yōu)惠購買圖書歡迎寫文章/投稿,我們強大的編輯團隊將為您提供專業(yè)和高效的編輯出版服務人民郵電出版社5類和對象Java程序設(shè)計第章導讀Introduction面向?qū)ο蠹夹g(shù)有三個特征,分別是數(shù)據(jù)封裝(類)、繼承和多態(tài)。本章先講解面向?qū)ο蟮幕靖拍?,然后主要講解與類和對象有關(guān)的內(nèi)容。C目錄ONTENTS5.2類5.3對象5.6參數(shù)的傳遞5.1面向?qū)ο蟮幕靖拍?.4訪問權(quán)限5.5構(gòu)造方法5.7對象組合5.8package和import5.9對象數(shù)組5.10

溫馨提示

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

最新文檔

評論

0/150

提交評論