Java程序設(shè)計(jì)-第02章 Java基礎(chǔ)語法_第1頁
Java程序設(shè)計(jì)-第02章 Java基礎(chǔ)語法_第2頁
Java程序設(shè)計(jì)-第02章 Java基礎(chǔ)語法_第3頁
Java程序設(shè)計(jì)-第02章 Java基礎(chǔ)語法_第4頁
Java程序設(shè)計(jì)-第02章 Java基礎(chǔ)語法_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章Java基礎(chǔ)語法 圖形圖像研究所計(jì)算機(jī)科學(xué)與技術(shù) 軟件學(xué)院浙江工業(yè)大學(xué) 高飛 陸佳煒等 Java程序設(shè)計(jì)實(shí)用教程 北京 清華大學(xué)出版社 2013 ISBN 978 7 302 31695 4 高飛 趙小敏等 Java程序設(shè)計(jì)實(shí)用教程習(xí)題集 北京 清華大學(xué)出版社 2013 ISBN 978 7 302 32051 7 高飛教授 博士生導(dǎo)師Tel 0571 85290535URL 前言 本章的目的 標(biāo)識(shí)符 4種字符 字母 數(shù)字 首字符 字母 關(guān)鍵字 8種基本數(shù)據(jù)類型 boolean char byte short int long float double 運(yùn)算符 流程控制 結(jié)構(gòu)化程序設(shè)計(jì) 5種參數(shù)輸入方式 回顧關(guān)鍵詞 程序設(shè)計(jì)語言的發(fā)展 Java語言的發(fā)展史 Java開發(fā)環(huán)境的配置 常用開發(fā)工具 記事本 JCreator Eclipse 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 1標(biāo)識(shí)符和關(guān)鍵字 Java中的標(biāo)識(shí)符 可以用來標(biāo)識(shí)變量名 類名 類中的方法名和文件名等 標(biāo)識(shí)符組成 1 字母 2 數(shù)字 3 下劃線 和 4 美元符號(hào) 首字符必須是 1 字母 2 下劃線 和 3 美元符號(hào) 所有標(biāo)識(shí)符是區(qū)分大小寫的 除去關(guān)鍵字 false true和null 問題 是 不是標(biāo)識(shí)符 myVariable9pinsMYVARIABLEia ctesting1 2 3 myvariablejava umlMyVariable myvariable 9pinsIt s貓 標(biāo)識(shí)符的習(xí)慣命名 能表達(dá)明確意義的英文單詞命名 并采用規(guī)范的單詞縮寫形式與單詞分隔形式 表示常量時(shí)標(biāo)識(shí)符全部用大寫字母和下劃線表示 如PI SALES TAX 表示類名或接口名時(shí) 標(biāo)識(shí)符用大寫字母開頭 如CreditCard 表示變量名和方法名 以小寫字母開頭 單詞之間不要有分隔符 第二及后面單詞第一個(gè)字符用大寫字母 如authorName Java關(guān)鍵字 具有特殊含義的字符序列例如 public static和class具有特殊用途 不能作為變量名 方法名和類名 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 2數(shù)據(jù)類型 基本數(shù)據(jù)類型 數(shù)據(jù)類型轉(zhuǎn)換 用變量 常量賦值給另一個(gè)變量時(shí) 兩者的數(shù)據(jù)類型必須一致 如不一致 則要進(jìn)行數(shù)據(jù)的類型轉(zhuǎn)換類型轉(zhuǎn)換有隱式轉(zhuǎn)換 自動(dòng)類型轉(zhuǎn)換 和顯式轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換 兩種 數(shù)據(jù)類型轉(zhuǎn)換 基本數(shù)據(jù)類型強(qiáng)弱關(guān)系圖 隱式類型轉(zhuǎn)換 當(dāng)占用比特位較少的類型轉(zhuǎn)換為占有比特位數(shù)較多的數(shù)據(jù)時(shí) 使用隱式類型轉(zhuǎn)換轉(zhuǎn)換過程由Java編譯器自動(dòng)進(jìn)行例 將短格式整型數(shù)據(jù)賦值為長格式整型數(shù)據(jù) 不會(huì)出現(xiàn)錯(cuò)誤 如 inti 123 longj i 若反過來 將長格式賦值給短格式整數(shù) 如 longj 25L inti j 將出現(xiàn)編譯錯(cuò)誤 顯示類型轉(zhuǎn)換 當(dāng)長格式數(shù)據(jù)賦值給短格式整型變量 雙精度數(shù)據(jù)給單精度類型賦值 浮點(diǎn)型數(shù)據(jù)給整型變量賦值時(shí) 均要進(jìn)行顯示類型轉(zhuǎn)換 即強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換用圓括號(hào)進(jìn)行轉(zhuǎn)換 目標(biāo)數(shù)據(jù)類型 變量名例如 inta 260 byteb b byte a 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 3變量和常量 變量在計(jì)算機(jī)內(nèi)部對(duì)應(yīng)著一個(gè)存儲(chǔ)單元 而且總是具有某種數(shù)據(jù)類型 基本數(shù)據(jù)類型或引用數(shù)據(jù)類型變量總是具有與其數(shù)據(jù)類型相對(duì)應(yīng)的值每個(gè)變量均具有 名字 類型 一定大小的存儲(chǔ)單元以及值 變量的四個(gè)要素 變量名 程序通過變量名訪問變量的值 對(duì)應(yīng)變量在內(nèi)存的位置 變量類型 變量類型由程序員顯式地聲明 類型決定了變量對(duì)應(yīng)存儲(chǔ)區(qū)域的大小以及如何解釋存儲(chǔ)在其中的二進(jìn)制串 存儲(chǔ)單元 一個(gè)變量與內(nèi)存中某一區(qū)域相關(guān)聯(lián) 存儲(chǔ)單元即指該區(qū)域的起始地址 值 變量對(duì)應(yīng)的內(nèi)存區(qū)域中存放的數(shù)據(jù)即為變量的值 在程序運(yùn)行的不同時(shí)刻 變量的值可能不同 名字 類型 值 存儲(chǔ)單元 變量在內(nèi)存中的存儲(chǔ)方式 intID 42889 Strings newString HelloWorld Java變量必須屬于某種類型 變量值也必須與變量類型相匹配例如 intstudentNumber 聲明單個(gè)變量doublevelocity distance 聲明多個(gè)變量studentNumber 30 給變量賦以整數(shù)30intstudentNumber 30 聲明變量 并賦初值 Java常量 Java常量包括基本數(shù)據(jù)類型常量 字符串 String 常量和null布爾 boolean 常量只有兩個(gè) true和false c u0061 u0051 和 u005a 是char常量 34是int常量1 5 45 6 76 4E8和 32 0是double常量34L是long常量 1 5F 45 6f 76 4E8F和 32 0F是float常量 HelloWorld 是String常量null是引用數(shù)據(jù)類型的常量任意引用數(shù)據(jù)類型的常量 null 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 4運(yùn)算符 對(duì)基本數(shù)據(jù)類型的常量與變量進(jìn)行加工的過程稱為運(yùn)算 表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符 參與運(yùn)算的數(shù)據(jù)稱為操作數(shù) Java語言的運(yùn)算符分成以下幾類 一元 二元或三元運(yùn)算符 按操作數(shù)的個(gè)數(shù) 前綴或中綴或后綴運(yùn)算符 按運(yùn)算符與操作數(shù)的位置關(guān)系 Java運(yùn)算符 算術(shù)運(yùn)算符關(guān)系運(yùn)算符布爾邏輯運(yùn)算符位運(yùn)算符賦值類運(yùn)算符條件運(yùn)算符其他運(yùn)算符 1 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符包括 沒有指數(shù)運(yùn)算Math pow 2 0 3 0 2 03 0整數(shù)除法 截去余數(shù)7 5結(jié)果為1取模 返回余數(shù)7 5結(jié)果為2 1 算術(shù)運(yùn)算符 publicclassIncrementDecrement publicstaticvoidmain String args inti 0 System out println i System out println i System out println i System out println i 1 算術(shù)運(yùn)算符 publicclassIncrementDecrement2 publicstaticvoidmain String args inti 0 i System out println i i System out println i i System out println i i System out println i 問題 7 5 7 5 7 5 7 0 5 7 5 0 7 5 0 7 5 0 1 22 1 4 1 42 0 2 0 2 關(guān)系運(yùn)算符 六個(gè)關(guān)系運(yùn)算符 和 例如 1 2 false3 5 1 true51 5 23 0 true540 654 true24 3 8 truebooleanisEqual 10 10 isEqual false 關(guān)系運(yùn)算符的注意事項(xiàng) 只能用來比較兩個(gè)數(shù)值類型數(shù)據(jù)的大小不能用于String boolean array或其他類型 若有兩個(gè)變量x與y要比較是否相等 應(yīng)該是寫成x y 而不是寫成x y 后者的作用是將y的值指定給x 而不是比較x與y是否相等 對(duì)于對(duì)象來說 兩個(gè)對(duì)象參考之間使用 作比較時(shí) 是比較其名稱是否參考至同一對(duì)象 而不是比較其內(nèi)容 關(guān)系運(yùn)算符的注意事項(xiàng) Stringstr1 newString welcome 創(chuàng)建一個(gè)對(duì)象 初始化Stringstr2 newString welcome 創(chuàng)建一個(gè)對(duì)象 初始化Stringstr3 str1 創(chuàng)建一個(gè)對(duì)象 并利用對(duì)象str1的地址賦值 str1 str2 falsestr1 str3 true 3 布爾邏輯運(yùn)算符 六個(gè)布爾邏輯運(yùn)算符 邏輯與 AND 邏輯或 OR 邏輯異或 XOR 邏輯非 NOT 短路與 AND 短路或 OR 3 布爾邏輯運(yùn)算符 短路示例 例如 下面的程序語句說明了短路邏輯運(yùn)算符的優(yōu)點(diǎn) 用它來防止被0除的錯(cuò)誤 if denom 0這里 使用標(biāo)準(zhǔn)AND運(yùn)算符 單個(gè)的 來保證不論c是否等于1 e都被自增量 4 位運(yùn)算符 位運(yùn)算符包括 和 帶符號(hào)右移 不帶符號(hào)右移移位操作是 先將整數(shù)寫成二進(jìn)制形式 然后按位操作 最后產(chǎn)生一個(gè)新的數(shù)注意 只用于整數(shù) 5 賦值類運(yùn)算符 賦值類運(yùn)算符包括 5 賦值類運(yùn)算符 6 條件運(yùn)算符 條件運(yùn)算符 的表達(dá)式形式為 op1 op2 op3 op1 布爾表達(dá)式 op1值為true 條件運(yùn)算結(jié)果取op2的值 op1值為false 條件運(yùn)算結(jié)果取op3的值 例如 inti 5 intk i 0 1 1 得出k值為1 7 其他運(yùn)算符 其他運(yùn)算符包括 類型 instanceof和new例如 Stringstr1 newString welcome charc char a 運(yùn)算符優(yōu)先級(jí) 一元后綴 一元前綴 創(chuàng)建和強(qiáng)制類型轉(zhuǎn)換new type 倍數(shù) 增量 移位 關(guān)系 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 5語句 if elseif elsewhiledo whileforswitchcasebreakcontinue if else語句 if else語句根據(jù)判定條件的真假來執(zhí)行兩種操作中的一種 它的形式如下 if 布爾表達(dá)式 語句1 else 語句2 其中 用 括起的else部分是可選的 即可有可無的 若無else部分 if語句的流程如下圖 無else部分的if語句的流程圖 true false 語句1 布爾表達(dá)式 后續(xù)語句 若有else部分 if語句的流程如圖 true false 語句1 布爾表達(dá)式 后續(xù)語句 語句2 注意 else子句不能作為語句單獨(dú)使用 它必須是if語句的一部分 與if配對(duì)使用 例 判斷成績是否優(yōu)秀 classIf Else publicstaticvoidmain String args intscoreOfMark 89 if scoreOfMark 90 System out println 祝賀你 你的成績優(yōu)秀 else System out println 你的成績未達(dá)到優(yōu)秀 請(qǐng)努力 while語句 while語句的語法形式為 while 布爾表達(dá)式 語句 while語句用于在布爾表達(dá)式 即測(cè)試條件 的值保持為真 true 時(shí)反復(fù)地執(zhí)行其中的內(nèi)嵌語句 一般叫做循環(huán)體 while語句的流程圖 True false 例 用while語句求1 2 10的和 publicclassWhileOfSum publicstaticvoidmain String args inti sum sum 0 累加器清0i 1 i的初始值為1while i 10 sum i i System out println sum sum do while語句 Java還提供了另一個(gè)與while語句類似的語句 do while語句 do while語句的語法形式如下 do 語句 while 布爾表達(dá)式 do while語句的流程圖 true false for語句 for語句是循環(huán)的另一種表示形式 for語句的語法形式為 for 表達(dá)式1 表達(dá)式2 表達(dá)式3 語句 例如 循環(huán)執(zhí)行某一段代碼1000次 可表達(dá)為 for intnum 0 num 1000 num 一段代碼 for語句的流程圖 例 用for語句求1 2 10的和 publicclassForOfSum publicstaticvoidmain String args inti sum sum 0 累加器清0for i 1 i 10 i sum i System out println sum sum for語句常見的錯(cuò)誤 for inti 1 sum 0 i 100 i sum i System out println i i sum sum 錯(cuò)誤 for語句不寫大括號(hào) System out println中的i會(huì)出現(xiàn)編譯錯(cuò)誤修改后 for inti 1 sum 0 i 100 i sum i System out println i i sum sum 或者在for外部定義變量 inti for語句常見的錯(cuò)誤 錯(cuò)誤二 利用浮點(diǎn)類型的 或 運(yùn)算作為條件表達(dá)式for doublex 0 1 x 1 0 x 0 1 System out println x switch語句 switch語句根據(jù)表達(dá)式的結(jié)果來執(zhí)行多個(gè)操作中的一個(gè) 它的語法形式如下 switch 表達(dá)式 case常量1 語句1 break case常量2 語句2 break case常量n 語句n break default 缺省處理語句break switch語句的流程圖 表達(dá)式 break 語句1 break 語句2 break 語句n break 缺省處理語句 后續(xù)語句 常量1 常量2 常量n default switch語句的注意點(diǎn) 1 1 使用switch語句時(shí) 要注意表達(dá)式必須是符合byte char short int類型的表達(dá)式 而不能使用浮點(diǎn)類型或long類型 也不能為一個(gè)字符串 2 switch語句將表達(dá)式的值依次與每個(gè)case子句中的常量值相比較 如果匹配成功 則執(zhí)行該case子句中常量值后的語句 直到遇到break語句為止 3 case子句中常量的類型必須與表達(dá)式的類型相容 而且每個(gè)case子句中常量的值必須是不同的 4 default子句是可選的 當(dāng)表達(dá)式的值與任一case子句中的值都不匹配時(shí) 就執(zhí)行default后的語句 switch語句的注意點(diǎn) 2 5 break語句在執(zhí)行完一個(gè)case分支后 使程序跳出switch語句 執(zhí)行switch語句的后續(xù)語句 6 在一些特殊的情況下 例如多個(gè)不同的case值要執(zhí)行一組相同的操作 可以寫成如下形式 case常量n case常量n 1 語句 break switch語句的注意點(diǎn) 3 7 case分支中包括多個(gè)執(zhí)行語句時(shí) 可以不用花括號(hào) 括起 8 通過if else語句可以實(shí)現(xiàn)switch語句所有的功能 但通常使用switch語句更簡練 且可讀性強(qiáng) 程序的執(zhí)行效率也高 9 if else語句可以基于一個(gè)范圍內(nèi)的值或一個(gè)條件來進(jìn)行不同的操作 但switch語句中的每個(gè)case子句都必須對(duì)應(yīng)一個(gè)單值 例 用switch語句實(shí)現(xiàn)學(xué)生成績的百分制到等級(jí)制的轉(zhuǎn)換 classSwitchDemo publicstaticvoidmain String args inttestScore 88 chargrade switch testScore 10 兩個(gè)整型數(shù)相除的結(jié)果還是整型case10 此處沒有使用breakcase9 grade A break 值為10和9時(shí)的操作是相同的case8 grade B break case7 grade C break case6 grade D break default grade E break System out println gradeis grade break語句 對(duì)于Java中的三種類型的循環(huán) while do while for來說 正常的退出循環(huán)的方法是當(dāng)測(cè)試條件變?yōu)閒alse時(shí) 但有時(shí)即使測(cè)試的條件為true 也希望循環(huán)立即終止 這時(shí)可以用break語句實(shí)現(xiàn)此功能 break語句的一般語法格式為 break 標(biāo)號(hào) break語句不能用于循環(huán)語句和switch語句之外的任何其它語句中 例 break語句的例子 publicclassBreakDemo publicstaticvoidmain String args intindex 0 while index 100 index 10 if index 40 break 當(dāng)index的值大于100時(shí) 循環(huán)將終止 但有一種特殊的情況 如果index的值等于40 循環(huán)也將立即終止 System out println Theindexis index 輸出結(jié)果 Theindexis10Theindexis20Theindexis30 true false continue語句 Continue語句只能在循環(huán)中使用 它和break語句的區(qū)別是continue語句只結(jié)束本次循環(huán) 而不是終止整個(gè)循環(huán)的執(zhí)行 而break語句則是結(jié)束整個(gè)循環(huán)語句的執(zhí)行 continue語句的一般格式為 continue 標(biāo)號(hào) 例 continue語句的例子 publicclassContinueDemo publicstaticvoidmain String args intindex 0 while index 99 index 10 當(dāng)index的值等于40時(shí) 使循環(huán)回到while語句處 而不像正常處理那樣去執(zhí)行后面的輸出語句 if index 40 continue System out println Theindexis index true false return語句 return語句的作用是終止當(dāng)前方法的執(zhí)行 返回到這個(gè)方法的調(diào)用者 所有非void方法必須包含一個(gè)return語句作為方法最后執(zhí)行的語句 該語句停止方法的執(zhí)行 并返回指定類型的值 語法如下 return expression expression的類型應(yīng)與方法的返回類型一致 小節(jié)安排 JAVA基礎(chǔ)語法 2 1 標(biāo)識(shí)符和關(guān)鍵字 2 2 基本數(shù)據(jù)類型 2 3 變量和常量 2 4 運(yùn)算符 2 5 語句 2 6 輸入?yún)?shù)方式 2 6輸入?yún)?shù)方式 通過main方法來輸入?yún)?shù)在main方法內(nèi)直接設(shè)置參數(shù)使用JOptionPane類進(jìn)行輸入使用輸入流進(jìn)行輸入使用Scanner類來輸入 2 6輸入?yún)?shù)方式 通過main方法來輸入?yún)?shù) 程序2 21 JHelloWorld2 javapublicclassJHelloWorld2 publicstaticvoidmain String args System out println 第一個(gè)參數(shù) args 0 第二個(gè)參數(shù) args 1 第三個(gè)參數(shù) args 2 2 6輸入?yún)?shù)方式 在main方法內(nèi)直接設(shè)置參數(shù) 程序2 22 JHelloWorld3 javapublicclassJHelloWorld3 publicstaticvoidmain String args String array abc d ef System out println 第一個(gè)參數(shù) array 0 第二個(gè)參數(shù) array 1 第三個(gè)參數(shù) array 2 2 6輸入?yún)?shù)方式 使用JOptionPane類進(jìn)行輸入 程序2 23 JHelloWorld4 javaimportjavax swing JOptionPane 導(dǎo)入JOptionPane類publicclassJHelloWorld4 publicstaticvoidmain String args Stringss JOptionPane showInputDialog 請(qǐng)輸入一個(gè)數(shù) System out println 輸入?yún)?shù)為 ss 2 6輸入?yún)?shù)方式 使用輸入流進(jìn)行輸入 程序2 24 JSysteminReadTest javaimportjava

溫馨提示

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

評(píng)論

0/150

提交評(píng)論