Java面向?qū)ο蟪绦蛟O(shè)計第02章_基本類型、數(shù)組和枚舉類型_第1頁
Java面向?qū)ο蟪绦蛟O(shè)計第02章_基本類型、數(shù)組和枚舉類型_第2頁
Java面向?qū)ο蟪绦蛟O(shè)計第02章_基本類型、數(shù)組和枚舉類型_第3頁
Java面向?qū)ο蟪绦蛟O(shè)計第02章_基本類型、數(shù)組和枚舉類型_第4頁
Java面向?qū)ο蟪绦蛟O(shè)計第02章_基本類型、數(shù)組和枚舉類型_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息工程學(xué)院本科課程信息工程學(xué)院本科課程 第2章 基本類型、數(shù)組、枚舉類型 主講:趙建邦 辦公室:信息學(xué)院202 E-mail: 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2 本章主要內(nèi)容 n2.1 標示符和關(guān)鍵字 n2.2 基本數(shù)據(jù)類型 n2.3 從命令行輸入輸出數(shù)據(jù) n2.4 數(shù)組 n2.5 枚舉類型 n難點:數(shù)組 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 3 2.1 標識符和關(guān)鍵字 n標識符 n定義:用來識別類名、變量名、方法名、 類型名、文件名、包名的有效字符序列 n規(guī)則: n由字母、$ 、_和數(shù)字組成,長度不限 n第一個字符不能是數(shù)字 n不能是關(guān)鍵字以及“true、false和nul

2、l” n區(qū)分大小寫 n關(guān)鍵字 nJava語言預(yù)留的特定意義單詞,不能作為 標識符使用 世界語言 “字母”表 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 4 2.1.1標識符命名約定 n使用能表達明確意義的英文單詞,并 采用規(guī)范的單詞縮寫形式與單詞分隔形式 n表示常量時標識符全部用大寫字母和下劃 線表示,如PI,SALES_MAX n表示類名或接口名時,標識符用大寫字母 開頭,如CreditCard n表示變量名和方法名,以小寫字母開頭, 單詞之間不要有分隔符,第二及后面單詞第 一個字符用大寫字母,如authorName n一般情況下,不建議使用數(shù)字作為標識符 信息工程學(xué)院本科課程信息工程學(xué)院本科

3、課程 2.1.2 關(guān)鍵字 5 類/接口abstractclassImplementsimportInterface packagestaticthrowvoid 數(shù)據(jù)類型booleanbytechardoublefloat longintshortenumconst 流程控制breakcontinuecasedodefault elsefinalforgotoif returnswitchwhile 訪問范圍privatepretectedpublicsynchronized 對象實例newinstanceofthissuper 異常處理catchtryfinallythrowthrows 修

4、飾斷言nativetransientvolatilestrictfpassert 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 6 2.2 基本數(shù)據(jù)類型 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 7 2.2.1 邏輯類型 n常量:常量:truetrue、falsefalse n變量聲明:使用關(guān)鍵字變量聲明:使用關(guān)鍵字booleanboolean n語法:語法: nboolean x, ok = true,boolean x, ok = true,關(guān)閉關(guān)閉=false;=false; 注意:和注意:和C C語言不同,語言不同,JavaJava的的booleanboolean和整型和整型 數(shù)據(jù)不能相互

5、強制轉(zhuǎn)換數(shù)據(jù)不能相互強制轉(zhuǎn)換 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 8 2.2.2 整數(shù)類型 nint型 n常量:123,077(8進制),0 xAbC(16進制) n變量:int x=12,y; n長度:32bit,7:0 x00 00 00 07,-8:0 xFF FF FF F8 n范圍: nbyte型 nbyte x=12,tom=28; nbyte只有一個字節(jié) n范圍: n如果超出范圍賦值:byte y=128;則系統(tǒng)報錯 77 221 3131 221 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 9 2.2.2 整數(shù)類型 nshort型 nshort x=12,tom=28; n

6、short型有兩個字節(jié) n范圍: n可以將int強制轉(zhuǎn)換成short ,注意數(shù)據(jù)溢出問題 nlong型 nlong型常量用后綴名L表示:108L,07123L, 0 x3ABCL nlong width=12L,height=2005L,length; n對于long型變量,內(nèi)存分配給8個字節(jié),占64位。 n范圍: 1515 221 6363 221 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.2.3 字符類型 n常量:用單引號擴起的Unicode中的一個字符: A、 ?、!、9、t、等等; n變量:char home=家,噢=; n對于char型變量,內(nèi)存分配兩個字節(jié),最高位不是符 號位,

7、因此其取值范圍: 0 0655365535 5 n觀察一個字符在Unicode中的位置,用int顯示轉(zhuǎn)換;得 到數(shù)字所代表的Unicode表中對應(yīng)字符,用char顯示轉(zhuǎn) 換,如教材圖2.1 n轉(zhuǎn)意字符常量轉(zhuǎn)意字符常量: : n(換行),b(退格),t(水平制表), (單引號),(雙引號),(反斜線)等 10 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.2.4 浮點類型 nfloat:單精度浮點型 n常量表示:453.5439f、21379.987F、 231.0f(小數(shù)表示法)、2e40f(指數(shù)表示法) n常量后面必須要有后綴常量后面必須要有后綴” f f”或或” F F”。 n變量:存儲變

8、量:存儲8 8位有效數(shù)字,內(nèi)存分配位有效數(shù)字,內(nèi)存分配4 4個字節(jié)個字節(jié) n1 1(符號)(符號)+8+8(指數(shù))(指數(shù))+23+23(小數(shù))(小數(shù)) n最小值:最小值:Float.MIN_VALUE=1.4E-45Float.MIN_VALUE=1.4E-45 n最大值:最大值:Float.MAX_VALUE=3.4028235E38Float.MAX_VALUE=3.4028235E38 11 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.2.4 浮點類型 ndouble:雙精度浮點型 n常量:常量:2389.5392389.539d d,2318908.9872318908.987,0.

9、050.05(小數(shù)小數(shù) 表示法),表示法),1 1e-90e-90(1 1乘乘1010的的-90-90次方,指數(shù)表示次方,指數(shù)表示 法)。實型常量按照法)。實型常量按照doubledouble型處理,后面可以型處理,后面可以 有后綴有后綴“d d”或或“D D”,但允許省略該后綴。但允許省略該后綴。 n變量:存儲變量:存儲1616位有效數(shù)字位有效數(shù)字, ,內(nèi)存分配8個字節(jié), 64bit n最小值:最小值:Double.MIN_VALUE=4.9E-324Double.MIN_VALUE=4.9E-324 n最大值:最大值:Double.MAX_VALUE=1.7976931348E308Dou

10、ble.MAX_VALUE=1.7976931348E308 12 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.2.5 基本數(shù)據(jù)類型的轉(zhuǎn)換 n低精度-高精度 n系統(tǒng)自動完成數(shù)據(jù)類型的轉(zhuǎn)換 n高精度-低精度 n必須使用類型轉(zhuǎn)換運算,如: int x=(int)34.89; int z=(int)1999L; n整數(shù)轉(zhuǎn)換超出低精度取值范圍 n取模運算: byte a=(byte)128; /a=-128 byte b=(byte)(-129); /b=127 ndouble - float,必須進行強制轉(zhuǎn)換 float f=(float)12.4;/float f=12.4f; 13 byte1

11、 short2 int4 long8 char2 float4 double 8 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.3 從命令行輸入輸出數(shù)據(jù) n輸入基本類型數(shù)據(jù) nimport java.util.Scanner; /導(dǎo)入所所要的類 nScanner reader=new Scanner(System.in); /生成一個Scanner對象,用來輸入數(shù)據(jù) ndouble x = reader.nextDouble(); /* reader對象可以調(diào)用nextBoolean()、 *nextByte()、nextShort()、nextInt()、 *nextLong()、nextF

12、loat()、nextDouble()等 *方法。 */ 14 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.3 從命令行輸入輸出數(shù)據(jù) n輸出基本類型數(shù)據(jù) n用System.out.println()或System.out.print()可輸出 串值、表達式的值,二者的區(qū)別是前者輸出數(shù)據(jù)后 換行,后者不換行。 n允許使用并置符號:“+”將變量、表達式或一個 常數(shù)值與一個字符串并置一起輸出,如: nSystem.out.println(m+個數(shù)的和為+sum); nSystem.out.println(“:”+123+“大于”+122); nprintf()方法可以控制輸出格式 nSystem.

13、out.printf(“格式控制部分”,表達式,表達 式); 15 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4 數(shù)組 n數(shù)組的定義 n數(shù)組是相同類型的變量按順序組成的一種復(fù) 合數(shù)據(jù)類型,稱這些相同類型的變量為數(shù)組 的元素或單元。數(shù)組通過數(shù)組名加索引來使 用數(shù)組的元素。索引從0開始。 n數(shù)組的聲明 n分配內(nèi)存 n數(shù)組的初始化 16 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.1 數(shù)組的聲明 n聲明一維數(shù)組 n數(shù)組的元素類型 數(shù)組名字 ; 或 n數(shù)組的元素類型 數(shù)組名字; n例如:float boy; 或 float boy; n聲明二維數(shù)組 n數(shù)組的元素類型 數(shù)組名字; 或 n數(shù)組的

14、元素類型 數(shù)組名字; n例如:char cat; 或 char cat; n與C+不同,Java不允許在聲明數(shù)組時 指定元素個數(shù) 17 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.2 數(shù)組的創(chuàng)建 n數(shù)組的創(chuàng)建過程即為數(shù)組分配內(nèi)存空間 n數(shù)組名字 = new 數(shù)組元素的類型數(shù)組元素 的個數(shù); n例如:boy = new float4; nboy是引用型變量,該變量保存已分配數(shù)組 的首地址,通過數(shù)組名加索引使用數(shù)組元素 n數(shù)組的聲明和創(chuàng)建可以一起完成 nfloat boy= new float4; nchar cat=new char34; 18 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2

15、.4.2 數(shù)組的創(chuàng)建 n二維數(shù)組的每個一維分量不必有相同的 長度,可以分別制定其一維分量的長度, 一維分量長度不需要統(tǒng)一。例如: nint a = new int4; na0=new int6; a1=new int5; n n和C語言不同,Java允許使用int型變量的 值制定元素的個數(shù) nint x=5; int b=new intx; 19 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.3 數(shù)組元素的使用 n訪問數(shù)組元素,注意防止索引越界 n例如:int a= new int23; n第一個索引變化范圍為:0,1; n第二個索引變化范圍為:0,1,2; nlength的使用 nflo

16、at a=new float13; /a.length=12 nint b=new int36; /b.length=3; /b1.length=6; 20 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.4 數(shù)組的初始化 n數(shù)組創(chuàng)建以后,系統(tǒng)會對每個數(shù)組默認 初始化 n聲明時初始化: nfloat boy = 21.3f,23.89f, 2.0f,23f,778.98f; nint a=1,1,1,1,2,1, n 1,3,3,1,1,4,6,4,1; 21 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.5 數(shù)組的引用 n在函數(shù)中定義的一些基本類型的變量數(shù)據(jù)和對象的引 用變量都在函數(shù)的

17、棧內(nèi)存中分配。 n堆內(nèi)存用來存放由new創(chuàng)建的對象和數(shù)組。 在堆中分 配的內(nèi)存,由Java虛擬機的自動垃圾回收器來管理。 nint a = 1,2,3,b = 4,5; int a = 1,2,3,b = 4,5; a=b; 22 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 引用變量 n引用變量是普通的變量,定義時在棧中分配, 引用變量在程序運行到其作用域之外后被釋放。 而數(shù)組和對象本身在堆中分配,即使程序 運行 到使用 new 產(chǎn)生數(shù)組或者對象的語句所在的 代碼塊之外,數(shù)組和對象本身占據(jù)的內(nèi)存不會 被釋放,數(shù)組和對象在沒有引用變量指向它的 時候,才變?yōu)槔?,不能在被使用,但?然占 據(jù)內(nèi)存空間

18、不放,在隨后的一個不確定的時間 被垃圾回收器收走(釋放掉)。這也是 Java 比較占內(nèi)存的原因。 23 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.6 元素的輸出 n對于char型數(shù)組a,System.out.println() 方法不會輸出a的引用,需要用 System.out.println(“”+a)來輸出其引用 n通過Arrays類的toString(int a)方法可以 得到數(shù)組的 a0,a1 a0,a1 aa.length-1aa.length-1 格式字符串 n對于數(shù)組a=1,2,3 nArrays.toString(a)= “1, 2, 3” 24 信息工程學(xué)院本科課程信

19、息工程學(xué)院本科課程 2.4.7 復(fù)制數(shù)組 narraycopy()方法 npublic static void arraycopy(public static void arraycopy(sourceArraysourceArray, ,int int index1index1,copyArray,int index2,copyArray,int index2,int lengthint length) ) n可以將數(shù)可以將數(shù)組組sourceArraysourceArray從索引從索引index1index1開始后的開始后的lengthlength個元素個元素 中的數(shù)據(jù)復(fù)制到數(shù)組中的數(shù)據(jù)復(fù)制

20、到數(shù)組copyArraycopyArray中,中,copyArraycopyArray數(shù)組從第數(shù)組從第 index2index2元素開始存放這些數(shù)據(jù)。元素開始存放這些數(shù)據(jù)。 n如果如果copyArraycopyArray不能存放復(fù)制的所有數(shù)據(jù),程序?qū)箦e不能存放復(fù)制的所有數(shù)據(jù),程序?qū)箦e 25 信息工程學(xué)院本科課程信息工程學(xué)院本科課程 2.4.7 復(fù)制數(shù)組 ncopyOf()方法 nArraysArrays類調(diào)用類調(diào)用copyOf方法方法復(fù)制整個數(shù)組復(fù)制整個數(shù)組中元素的值到另中元素的值到另 一個數(shù)組中一個數(shù)組中。起始索引:。起始索引:0 0, ,拷貝的元素個數(shù)拷貝的元素個數(shù): :newLeng

21、thnewLength npublic static double copyOf(double original, int public static double copyOf(double original, int newLength);newLength); ncopyOfRange()方法 nArraysArrays類調(diào)用類調(diào)用copyOfRange()方法方法復(fù)制復(fù)制數(shù)組中部分元素數(shù)組中部分元素 的值復(fù)制到另一個數(shù)組中,起始索引:的值復(fù)制到另一個數(shù)組中,起始索引:fromfrom,拷貝的元,拷貝的元 素個數(shù):素個數(shù):to-fromto-from npublic static double copy

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論