Java 程序設(shè)計(jì)教程-chapter 2_第1頁(yè)
Java 程序設(shè)計(jì)教程-chapter 2_第2頁(yè)
Java 程序設(shè)計(jì)教程-chapter 2_第3頁(yè)
Java 程序設(shè)計(jì)教程-chapter 2_第4頁(yè)
Java 程序設(shè)計(jì)教程-chapter 2_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java 程序程序設(shè)計(jì)設(shè)計(jì)教程教程Sixth Editionby Lewis & LoftusChapter 2: 數(shù)據(jù)與表達(dá)式數(shù)據(jù)與表達(dá)式2-2數(shù)據(jù)與表達(dá)式數(shù)據(jù)與表達(dá)式 本章重點(diǎn): 字符串 基本數(shù)據(jù)類型 變量與賦值 賦值語(yǔ)句 數(shù)據(jù)轉(zhuǎn)換2-3大大綱綱字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換交互程序交互程序2-4字符串字符串 JAVA以雙引號(hào)作為字符串的定界符: Examples:This is a string literal.123 Main StreetX 每一字符串在Java作為一個(gè)對(duì)象存在,由 String 類定義2-5Pri

2、ntln 和和print 方法方法 在第一章的Lincoln 程序, 調(diào)用了 println 方法打印字符串 System.out 對(duì)象代表一個(gè)輸出設(shè)備 (顯示器屏幕)System.out.println (Whatever you are, be a good one.);對(duì)象對(duì)象方法名方法名傳遞給方法的信息傳遞給方法的信息( (參數(shù)參數(shù)) )2-6print方法方法 System.out 對(duì)象還提供了另一個(gè)可用的服務(wù) print 方法 類似于 println方法, 區(qū)別在于保持光標(biāo)的當(dāng)前位置2-7字符串拼接字符串拼接 一個(gè)字符串不能跨越多行 字符串拼接運(yùn)算符 (+) 將兩個(gè)字符串拼接在一起

3、形成一個(gè)長(zhǎng)字符串Peanut butter + and jelly 可用于將字符串與數(shù)字拼接在一起2-8字符串拼接字符串拼接 + 運(yùn)算符也表示算術(shù)加法運(yùn)算 + 運(yùn)算符究竟完成哪種運(yùn)算取決于操作數(shù)的數(shù)據(jù)類型 如果+ 運(yùn)算符的兩個(gè)操作數(shù)中至少有一個(gè)是字符串,則作字符串拼接操作 + 運(yùn)算符從左到右依次執(zhí)行2-9轉(zhuǎn)義轉(zhuǎn)義序列序列 如何打印一個(gè)雙引號(hào)? 下面語(yǔ)句會(huì)導(dǎo)致編譯器理解錯(cuò)誤System.out.println (I said Hello to you.); 一個(gè)轉(zhuǎn)義序列用于表示一個(gè)可能會(huì)引起編譯錯(cuò)誤的特殊字符 一個(gè)轉(zhuǎn)義序列以反斜杠 ()開頭System.out.println (I said H

4、ello to you.);2-10轉(zhuǎn)義轉(zhuǎn)義序列序列 Java轉(zhuǎn)義序列:轉(zhuǎn)義序列轉(zhuǎn)義序列btnr意義意義回退回退制表符制表符換行符換行符回車符回車符雙引號(hào)雙引號(hào)單引號(hào)單引號(hào)反斜杠反斜杠2-11大大綱綱字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換交互程序交互程序2-12變量與賦值變量與賦值 變量代表保存數(shù)據(jù)的內(nèi)存單元 變量聲明由類型說(shuō)明符以及后續(xù)的變量名列表組成int total;int count, temp, result;一行變量聲明語(yǔ)句可以同時(shí)聲明多個(gè)具有相同類型的變量一行變量聲明語(yǔ)句可以同時(shí)聲明多個(gè)具有相同類型的變量數(shù)據(jù)類型數(shù)據(jù)類型變量名

5、變量名2-13賦值語(yǔ)賦值語(yǔ)句句 一個(gè)變量可以在定義時(shí)賦予一個(gè)初始值引用一個(gè)變量時(shí),只引用該變量的當(dāng)前值int sum = 0;int base = 32, max = 149;2-14賦值賦值 賦值語(yǔ)句能夠改變一個(gè)變量的值 基本賦值語(yǔ)句用賦值運(yùn)算符 = total = 55;Total變量的內(nèi)容被改寫不允許將一個(gè)值賦給一個(gè)類型不一致的變量先計(jì)算賦值運(yùn)算符右邊的表達(dá)式2-15常量常量 常量類似于變量,只是值在它的生命期內(nèi)一直保持不變 給常量賦予初始值后,若再試圖改變?cè)摮A恐?,則編譯器會(huì)報(bào)錯(cuò) Java 采用final修飾語(yǔ)聲明一個(gè)常量final int MIN_HEIGHT = 69;2-16常量

6、常量 常量在三種情況下非常有用: 第一:使用常量有清晰的作用和意義 Example:MAX_LOAD 其次:使用常量可避免編寫代碼時(shí)的疏忽性錯(cuò)誤 初始化賦值語(yǔ)句是唯一能改變常量值的地方 第三:當(dāng)常量值需要修改時(shí),只需要修改聲明語(yǔ)句2-17Outline字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換交互程序交互程序2-18基本數(shù)據(jù)類型基本數(shù)據(jù)類型 Java含有八種基本數(shù)據(jù)類型 四種整型: byte, short, int, long 兩種浮點(diǎn)數(shù)類型: float, double 一個(gè)字符型: char 一個(gè)布爾型: boolean2-19整型與浮點(diǎn)型

7、整型與浮點(diǎn)型 各種數(shù)值型的區(qū)別在于保存時(shí)所占用的內(nèi)存空間的大小不同類型類型byteshortintlongfloatdouble存儲(chǔ)空間存儲(chǔ)空間8 bits8 bits16 bits16 bits32 bits32 bits64 bits64 bits32 bits32 bits64 bits64 bits最小值最小值-128-128-32,768-32,768-2,147,483,648-2,147,483,648 -9 x 10 9 x 10 9 x 1018182-20字符型字符型 字符變量可保存一個(gè)字符 Java用單引號(hào)表示字符常量:a X 7 $ , n Example:char t

8、opGrade = A;char terminator = ;, separator = ; 字符型是Java的基本數(shù)據(jù)類型,但字符串不是基本類型2-21字符集字符集 字符集由字符按照一定順序組成的字符列表 Java使用16位Unicode字符集表示字符 Unicode使用16個(gè)二進(jìn)制位表示一個(gè)字符,支持65536個(gè)不同字符 許多語(yǔ)言的字符和符號(hào)都包含在Unicode的定義中2-22字符集字符集ASCII 碼字符集歷史比Unicode久遠(yuǎn),為Unicode的一個(gè)子集, 但仍然相當(dāng)流行 The ASCII 碼字符集包括:大寫字母大寫字母小寫字母小寫字母標(biāo)點(diǎn)符號(hào)標(biāo)點(diǎn)符號(hào)數(shù)字?jǐn)?shù)字特殊符號(hào)特殊符號(hào)控制

9、符號(hào)控制符號(hào)A, B, C, A, B, C, a, b, c, a, b, c, ., ;, ., ;, 0, 1, 2, 0, 1, 2, &, |, , &, |, , 回車回車, , 空格空格, ., .2-23布爾型布爾型 一個(gè)布爾型變量包含兩種有效值:true和false Java中的單詞true和false用作表示布爾常量值的保留字boolean done = false;2-24大大綱綱字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換交互程序交互程序2-25表達(dá)式表達(dá)式 表達(dá)式由一個(gè)以上的運(yùn)算符和操作符按照一定規(guī)則組合

10、而成 表達(dá)式是運(yùn)算符和操作符組合后用于完成計(jì)算:表達(dá)式中只要有一個(gè)或以上的運(yùn)算符為浮點(diǎn)數(shù),則結(jié)果也為浮點(diǎn)數(shù)加加減減乘乘除除求余求余+ +- -* */ /%2-26除法與求余除法與求余 如果(/)的兩個(gè)操作數(shù)都為整數(shù),則結(jié)果為整數(shù) (忽略計(jì)算結(jié)果的小數(shù)部分)求余運(yùn)算 (%) 返回值的符號(hào)與被除數(shù)的符號(hào)一致14 / 3 equalsequals8 / 12 equalsequals4014 % 3 equalsequals8 % 12 equalsequals282-27運(yùn)算符運(yùn)算符優(yōu)優(yōu)先先級(jí)級(jí) 運(yùn)算符可以組合以形成更復(fù)雜的表達(dá)式result = total + count / max - of

11、fset; 運(yùn)算符優(yōu)先級(jí)層次結(jié)構(gòu)建立了控制運(yùn)算的求值順序規(guī)則 乘法、除法、求余運(yùn)算符具有相同的運(yùn)算優(yōu)先級(jí),先于加、減法 具有相同優(yōu)先級(jí)的運(yùn)算符按照從左到右的順序執(zhí)行, 但可以使用括號(hào)強(qiáng)制改變運(yùn)算符優(yōu)先順序2-28賦值賦值 賦值運(yùn)算符的運(yùn)算優(yōu)先級(jí)比算術(shù)運(yùn)算符的優(yōu)先級(jí)更低首先計(jì)算首先計(jì)算= =操作符右邊的值操作符右邊的值計(jì)算結(jié)果保存到計(jì)算結(jié)果保存到= =操作符左邊表明的變量操作符左邊表明的變量answer = sum / 4 + MAX * lowest;14322-29賦值賦值 賦值語(yǔ)句左右邊可能出現(xiàn)相同的變量取取countcount的當(dāng)前值再加的當(dāng)前值再加1 1將計(jì)算結(jié)果存回將計(jì)算結(jié)果存回co

12、untcount變量變量( (改寫原有值改寫原有值) )count = count + 1;2-30自增和自減運(yùn)算符自增和自減運(yùn)算符 自增和自減運(yùn)算符只需要一個(gè)操作數(shù) 自增運(yùn)算符 (+) 將整型和浮點(diǎn)型變量加1 自減運(yùn)算符(-)將整型和浮點(diǎn)型變量減1 表達(dá)式count+;等價(jià)于count = count + 1;2-31自增和自減運(yùn)算符自增和自減運(yùn)算符 自增和自減運(yùn)算符可以作用在變量之后:count+ 自增和自減運(yùn)算符也可以作用在變量之前:+count 自增和自減運(yùn)算符應(yīng)用在較復(fù)雜的表達(dá)式中可能產(chǎn)生不同的計(jì)算結(jié)果 自增和自減運(yùn)算符的前綴和后綴形式具有微妙的差異2-32賦值賦值運(yùn)算符運(yùn)算符 通常

13、我們會(huì)對(duì)某變量操作,再將結(jié)果存回該變量 Java 提供了組合賦值語(yǔ)句以簡(jiǎn)化上述過(guò)程 Example:num += count;等價(jià)于:num = num + count;2-33賦值賦值運(yùn)算符運(yùn)算符 Java包含很多組合賦值運(yùn)算符:運(yùn)算符運(yùn)算符+=-=*=/=%=例子例子x += yx -= yx *= yx /= yx %= y等價(jià)于等價(jià)于x = x + yx = x - yx = x * yx = x / yx = x % y2-34賦值賦值運(yùn)算符運(yùn)算符 賦值運(yùn)算的右邊可能包含復(fù)雜的計(jì)算表達(dá)式 所有的組合賦值運(yùn)算符都是首先計(jì)算整個(gè)表達(dá)式的值,然后將計(jì)算結(jié)果作為組合賦值運(yùn)算符的右操作數(shù)與左邊

14、變量的值進(jìn)行計(jì)算 因此result /= (total-MIN) % num;等價(jià)于result = result / (total-MIN) % num);2-35賦值賦值運(yùn)算符運(yùn)算符 一些組合賦值運(yùn)算符執(zhí)行的具體功能依賴于操作數(shù)的類型 如果 += 運(yùn)算符的操作數(shù)是字符串,那么該運(yùn)算符將執(zhí)行字符串拼接2-36大大綱綱字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換交互程序交互程序2-37數(shù)據(jù)類型數(shù)據(jù)類型轉(zhuǎn)換轉(zhuǎn)換 有時(shí)進(jìn)行數(shù)據(jù)之間的轉(zhuǎn)換很有必要 數(shù)據(jù)轉(zhuǎn)換一般不改變數(shù)據(jù)原有值 擴(kuò)展類型轉(zhuǎn)換是更安全的類型轉(zhuǎn)換 (例如從 short 轉(zhuǎn)換到 int) 壓縮

15、類型轉(zhuǎn)換相對(duì)擴(kuò)展類型轉(zhuǎn)換更容易丟失信息 (例如從int 轉(zhuǎn)換到short) 在Java中, 數(shù)據(jù)轉(zhuǎn)換的方式有三種: 賦值類型轉(zhuǎn)換 “低級(jí)別”類型向“高級(jí)別”類型自動(dòng)轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換2-38賦值類型轉(zhuǎn)換賦值類型轉(zhuǎn)換 將一個(gè)類型的值賦給另一種類型的變量時(shí),發(fā)生了賦值類型轉(zhuǎn)換 如果 money 是float變量,dollars是int變量, 下列賦值將 dollars值轉(zhuǎn)為floatmoney = dollars 在賦值類型轉(zhuǎn)換時(shí)只能執(zhí)行擴(kuò)展類型轉(zhuǎn)換 注意 dollars 的數(shù)值類型和值沒有發(fā)生改變2-39數(shù)數(shù)值值類型類型轉(zhuǎn)換轉(zhuǎn)換 某運(yùn)算符為了進(jìn)行運(yùn)算而需要修改其操作數(shù)時(shí),將進(jìn)行自動(dòng)類型轉(zhuǎn)換 例如

16、, 如果sum 為float,count 為int, count 的值轉(zhuǎn)換為浮點(diǎn)數(shù),以執(zhí)行下列計(jì)算:result = sum / count;2-40強(qiáng)制強(qiáng)制轉(zhuǎn)換轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換是數(shù)據(jù)轉(zhuǎn)換中最強(qiáng)大、最危險(xiǎn)的轉(zhuǎn)換方式 擴(kuò)展類型轉(zhuǎn)換和壓縮類型轉(zhuǎn)換都可以由顯式的強(qiáng)制轉(zhuǎn)換實(shí)現(xiàn) 強(qiáng)制轉(zhuǎn)換的格式為 (“類型名”) 變量/數(shù)值 例如, 如果total 和count 為整型, 但希望得到一個(gè)以浮點(diǎn)數(shù)表達(dá)的除法結(jié)果, 則可以強(qiáng)制轉(zhuǎn)換 total:result = (float) total / count;2-41大大綱綱字符串字符串變量與賦值變量與賦值基本數(shù)據(jù)類型基本數(shù)據(jù)類型表達(dá)式表達(dá)式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型

17、轉(zhuǎn)換交互程序交互程序2-42交互程序交互程序 通常程序需要在執(zhí)行期間交互地從用戶輸入中讀取數(shù)據(jù) Scanner 類提供了交互式讀取不同類型的輸入數(shù)據(jù) Scanner 類對(duì)象可讀取不同來(lái)源的數(shù)據(jù), 包括用戶鍵盤輸入 鍵盤輸入由 System.in 對(duì)象表示2-43讀讀取取輸輸入入 下列語(yǔ)句創(chuàng)建了一個(gè)讀取鍵盤輸入的scanner對(duì)象:Scanner scan = new Scanner (System.in); new 操作符創(chuàng)建了Scanner對(duì)象 一旦創(chuàng)建, Scanner對(duì)象可用于調(diào)用不同的輸入方法, 例如:answer = scan.nextLine();2-44讀讀取取輸輸入入 Scan

18、ner 類為java.util 類庫(kù)的一部分, 在使用前必須先import nextLine 方法讀取所有的輸入直至行結(jié)束符 對(duì)象創(chuàng)建和類庫(kù)的引用將在第三章詳細(xì)討論2-45輸輸入數(shù)據(jù)入數(shù)據(jù)項(xiàng)項(xiàng) 除非特別說(shuō)明,Scanner對(duì)象假定空白字符用于分離輸入數(shù)據(jù)流中的各個(gè)數(shù)據(jù)項(xiàng) 空白字符包括空格符、制表符和換行符 Scanner類的next方法將下一個(gè)輸入數(shù)據(jù)項(xiàng)作為字符串讀入并返回該字符串 nextInt 和nextDouble方法讀取特定類型的數(shù)據(jù) See GasMileage.java 2-46圖圖形形 一幅保存在計(jì)算機(jī)的圖形必須數(shù)字化 將信息分解為元素并用編碼來(lái)表示元素 保存每個(gè)像素顏色值以保存

19、完整圖形 表示圖形所用的像素點(diǎn)數(shù)稱為圖形分辨率 黑白圖形的每像素點(diǎn)用1位二進(jìn)制位表示2-47坐坐標(biāo)標(biāo)系系統(tǒng)統(tǒng) 傳統(tǒng)的笛卡爾坐標(biāo)系有兩個(gè)在原點(diǎn)相交的坐標(biāo)軸 Java程序設(shè)計(jì)語(yǔ)言設(shè)置一套相對(duì)簡(jiǎn)單的坐標(biāo)系統(tǒng),所有的可見坐標(biāo)值都為正值 Java繪圖區(qū)的左上角坐標(biāo)為(0,0) X軸坐標(biāo)值向右增大 Y軸坐標(biāo)值向下增大2-48顏顏色表示方法色表示方法 Java采用三個(gè)數(shù)表示顏色值,即RGB值 RGB值中每個(gè)基色值代表該基色的大小 用一個(gè)字節(jié)(8位)保存一個(gè)基色值, 取值范圍在0255 每種基色的亮度級(jí)的合成決定像素點(diǎn)顏色 Java采用Color類定義和管理顏色 Color類的每個(gè)對(duì)象代表一種顏色2-49Java applet Java程序有兩種:程序有兩種:Java小小應(yīng)應(yīng)用程序(用程序(Java applet)和)和Java應(yīng)應(yīng)用程序用程序 Java Applet的源代的源代碼編輯碼編輯與字與字節(jié)碼節(jié)碼的的編譯編譯生成生成過(guò)過(guò)程與程與Java Application 相同,但它相同,但它不是可以獨(dú)立運(yùn)行的程序,它的字不是可以獨(dú)立運(yùn)行的程序,它的字節(jié)碼節(jié)碼文件文件必必須須

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論