Java程序設計第2章基本數(shù)據(jù)類型_第1頁
Java程序設計第2章基本數(shù)據(jù)類型_第2頁
Java程序設計第2章基本數(shù)據(jù)類型_第3頁
Java程序設計第2章基本數(shù)據(jù)類型_第4頁
Java程序設計第2章基本數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java面向對象程序設計面向對象程序設計 第第2章章基本類型、數(shù)組和枚舉類型 主要內容主要內容標識符和關鍵字標識符和關鍵字基本數(shù)據(jù)類型基本數(shù)據(jù)類型從命令行輸入、輸出數(shù)據(jù)從命令行輸入、輸出數(shù)據(jù)數(shù)組數(shù)組枚舉類型枚舉類型難點難點數(shù)組數(shù)組導讀導讀2.1 標識符和關鍵字標識符和關鍵字 1. 1. 標識符標識符 用來標識類名、變量名、方法名、類型名、數(shù)組用來標識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標識符。簡單地說,名、文件名的有效字符序列稱為標識符。簡單地說,標識符就是一個名字。標識符就是一個名字。 2. 2.關鍵字關鍵字 關鍵字就是關鍵字就是Java語言中已經(jīng)被賦予特定意義的一

2、語言中已經(jīng)被賦予特定意義的一些單詞。不可以把關鍵字做為標識符來用。些單詞。不可以把關鍵字做為標識符來用。 2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 基本數(shù)據(jù)類型也稱作簡單數(shù)據(jù)類型。基本數(shù)據(jù)類型也稱作簡單數(shù)據(jù)類型。JavaJava語言有語言有8 8種基本數(shù)據(jù)類型,分別是:種基本數(shù)據(jù)類型,分別是: boolean boolean、bytebyte、shortshort、intint、longlong、floatfloat、doubledouble、charchar。 這這8 8種基本數(shù)據(jù)類型習慣上可分為以下四大類型:種基本數(shù)據(jù)類型習慣上可分為以下四大類型: 邏輯類型:邏輯類型:booleanboolean

3、 整數(shù)類型:整數(shù)類型:bytebyte、shortshort、intint、longlong 字符類型:字符類型:charchar 浮點類型:浮點類型:floatfloat、doubledouble 2.2.1 邏輯類型邏輯類型 常量:常量:true,false。變量:變量:使用關鍵字使用關鍵字boolean來聲明邏輯變量,來聲明邏輯變量, 聲明時也可以賦給初值,聲明時也可以賦給初值, 例如:例如: boolean x,ok=true,關閉關閉=false;2.2.2 整數(shù)類型整數(shù)類型 1int 型型常量:常量:123,6000(十進制),十進制),077(八進制),(八進制),0 x3ABC

4、(十六進制)。十六進制)。 變量:變量:使用關鍵字使用關鍵字intint來聲明來聲明intint型變量,聲明時也可以賦給初值,型變量,聲明時也可以賦給初值, 例如:例如: int x= 12,平均平均=9898,jiafei; 對于對于int型變量,內存分配給型變量,內存分配給4個字節(jié)(個字節(jié)(byte),),占占32位。位。2byte 型型 常量:常量:Java中不存在中不存在byte型常量的表示法,但可以把一定范圍內的型常量的表示法,但可以把一定范圍內的int型常量賦值給型常量賦值給byte型變量。型變量。 變量:變量:使用關鍵字使用關鍵字bytebyte來聲明來聲明byte byte 型

5、變量型變量 例如:例如: byte x= -12,tom=28,漂亮漂亮=98; 對于對于bytebyte型內存分配給型內存分配給1 1個字節(jié),占個字節(jié),占8 8位位 。3 3 short short 型型 常量:常量:和和bytebyte型類似,型類似,Java中也不存在中也不存在short型常量的表示法,但可以把一定范圍內型常量的表示法,但可以把一定范圍內的的int型常量賦值給型常量賦值給short型變量。型變量。 變量:變量:使用關鍵字使用關鍵字shortshort來聲明來聲明shortshort型變量型變量 例如:例如: short x=12,y=1234; 對于對于shortshor

6、t型變量,內存分配給型變量,內存分配給2 2個字節(jié),占個字節(jié),占1616位位. .4. long 4. long 型型 常量:常量:longlong型常量用后綴型常量用后綴L L來表示,例如來表示,例如108108L(L(十進制十進制) )、0712307123L(L(八進制八進制) )、0 x3ABCL(十六進制十六進制) 。 變量:變量:使用關鍵字使用關鍵字longlong來聲明來聲明longlong型變量,型變量, 例如:例如: long width=12L,height=2005L,length; 對于對于longlong型變量,內存分配給型變量,內存分配給8 8個字節(jié),占個字節(jié),占6

7、464位。位。2.2.3 字符類型字符類型 1. 常量:常量:常量:常量:A,b,?,!,9,好好,t,等,等, 即用單引號擴起的即用單引號擴起的Unicode表中的一個字符。表中的一個字符。 2. 變量:變量: 使用關鍵字使用關鍵字charchar來聲明來聲明charchar型變量,型變量, 例如:例如:char ch=A,home=char ch=A,home=家家,handsome=handsome=酷酷; 對于對于charchar型變量,內存分配給型變量,內存分配給2 2個字節(jié),占個字節(jié),占1616位位 3. 3. 轉意字符常量轉意字符常量: :有些字符(如回車符)不能通過鍵盤輸入到字

8、符有些字符(如回車符)不能通過鍵盤輸入到字符串或程序中,就需要使用轉意字符常量串或程序中,就需要使用轉意字符常量, , 例如:例如: n n(換行),換行), b b(退格),退格), t t(水平制表),水平制表), (單引號),(單引號),“(雙引號),(雙引號),(反斜線)(反斜線)等。等。 4. 4. 要觀察一個字符在要觀察一個字符在UnicodeUnicode表中的順序位置表中的順序位置,可以使用,可以使用intint型顯型顯示轉換,如示轉換,如( (int)aint)a或或int p=aint p=a。5. 5. 如果要得到一個如果要得到一個0 06553665536之間的數(shù)所代表

9、的之間的數(shù)所代表的UnicodeUnicode表中相應位表中相應位置上的字符置上的字符 必須使用必須使用charchar型顯示轉換。型顯示轉換。 例例2-12-1 2.2.4 浮點類型浮點類型 1. float型型 常量:常量:453.5439453.5439f f,21379.987F21379.987F,231.0f231.0f(小數(shù)表示法),小數(shù)表示法),2 2e40fe40f(2 2乘乘1010的的4040次方,指數(shù)表示法)。需要特別注意的是:次方,指數(shù)表示法)。需要特別注意的是:常量后面必須要有后綴常量后面必須要有后綴“f”f”或或“F”F”。 變量:變量:使用關鍵字使用關鍵字flo

10、at來聲明來聲明float型變量,型變量, 例如:例如:float x=22.76f,tom=1234.987f,weight=1e-12F; 精度精度:float變量在存儲變量在存儲float型數(shù)據(jù)時保留型數(shù)據(jù)時保留8位有效數(shù)字,實際精度位有效數(shù)字,實際精度取決于具體數(shù)值。取決于具體數(shù)值。 對于對于floatfloat型變量,內存分配給型變量,內存分配給4 4個字節(jié),占個字節(jié),占3232位。位。 2. double 型型 常量:常量:2389.5392389.539d d,2318908.9872318908.987,0.050.05(小數(shù)表示法),小數(shù)表示法),1 1e-e-9090(1

11、1乘乘1010的的-90-90次方,指數(shù)表示法)。對于次方,指數(shù)表示法)。對于doubledouble常量,后面常量,后面可以有后綴可以有后綴“d”d”或或“D”D”,但允許省略該后綴。但允許省略該后綴。 變量:變量:使用關鍵字使用關鍵字doubledouble來聲明來聲明doubledouble型變量,型變量, 例如:例如:double height=23.345,width=34.56D,length=1e12; 對于對于doubledouble型變量,內存分配給型變量,內存分配給8 8個字節(jié),占個字節(jié),占6464位位 。 精度精度:double變量在存儲變量在存儲double型數(shù)據(jù)時保留

12、型數(shù)據(jù)時保留16位有效數(shù)字,實位有效數(shù)字,實際精度取決于具體數(shù)值。際精度取決于具體數(shù)值。2.2.5 基本數(shù)據(jù)類型的轉換基本數(shù)據(jù)類型的轉換 Java中數(shù)據(jù)的基本類型(不包括邏輯類型)按精度從中數(shù)據(jù)的基本類型(不包括邏輯類型)按精度從“低低”到到“高高”排列:排列:byte short char int long float doublebyte short char int long float double 當把級別低的變量的值賦給級別高的變量時,系統(tǒng)自動完成數(shù)據(jù)類型的轉換。當把級別低的變量的值賦給級別高的變量時,系統(tǒng)自動完成數(shù)據(jù)類型的轉換。例如:例如: float x=100; float

13、x=100; 當把級別高的變量的值賦給級別低的變量時,必須使用當把級別高的變量的值賦給級別低的變量時,必須使用顯示顯示類型轉換運算。類型轉換運算。顯示轉換的格式:顯示轉換的格式:(類型名)要轉換的值(類型名)要轉換的值; ; 例如例如 int x=(int)34.89; int x=(int)34.89; 當把一個當把一個intint型常量賦值給一個型常量賦值給一個bytebyte和和shortshort型變量時,不可以超出這些變量型變量時,不可以超出這些變量的取值范圍,否則必須進行類型轉換運算;例如,常量的取值范圍,否則必須進行類型轉換運算;例如,常量128128的屬于的屬于intint型常

14、型常量,超出量,超出bytebyte變量的取值范圍,如果賦值給變量的取值范圍,如果賦值給bytebyte型變量,必須進行型變量,必須進行bytebyte類類型轉換運算(將導致精度的損失),如下所示:型轉換運算(將導致精度的損失),如下所示: byte a=(byte)128; byte a=(byte)128; 例例2-22-22.3從命令行輸入、輸出數(shù)據(jù)從命令行輸入、輸出數(shù)據(jù) 2.3.1 輸入基本型數(shù)據(jù)輸入基本型數(shù)據(jù) 可以使用Scanner類創(chuàng)建一個對象: Scanner reader=new Scanner(System.in); reader對象調用下列方法,讀取用戶在命令行(例如,MS

15、-DOS窗口)輸入的各種基本類型數(shù)據(jù): nextBoolean()、 nextByte()、 nextShort()、 nextInt() nextLong()、nextFloat()、nextDouble()。 上述方法執(zhí)行時都會堵塞,程序等待用戶在命令行輸入數(shù)據(jù)回車確認。 例例2-32-3 2.3.2 輸出基本型數(shù)據(jù)輸出基本型數(shù)據(jù) 用System.out.println()或System.out.print()可輸出串值、表達式的值,二者的區(qū)別是前者輸出數(shù)據(jù)后換行,后者不換行。 允許使用并置符號:“+”將變量、表達式或一個常數(shù)值與一個字符串并置一起輸出,如: System.out.prin

16、tln(m+個數(shù)的和為+sum); System.out.println(“:”+123+“大于”+122) JDK1.5新增了和C語言中printf函數(shù)類似的數(shù)據(jù)輸出方法,該方法使用格式如下: System.out.printf(格式控制部分格式控制部分,表達式,表達式1,表達式,表達式2,表達式表達式n) 格式控制部分由格式控制符號:%d、%c、%f、%s和普通的字符組成,普通字符原樣輸出。格式符號用來輸出表達式的值。 %d:輸出輸出int類型數(shù)據(jù)值類型數(shù)據(jù)值 %c:輸出輸出char型數(shù)據(jù)。型數(shù)據(jù)。 %f:輸出浮點型數(shù)據(jù),小數(shù)部分最多保留輸出浮點型數(shù)據(jù),小數(shù)部分最多保留6位位 %s:輸出字

17、符串數(shù)據(jù)。輸出字符串數(shù)據(jù)。輸出數(shù)據(jù)時也可以控制數(shù)據(jù)在命令行的位置,例如: %md:輸出的輸出的int型數(shù)據(jù)占型數(shù)據(jù)占m列列 %m.nf:輸出的浮點型數(shù)據(jù)占輸出的浮點型數(shù)據(jù)占m列,小數(shù)點保留列,小數(shù)點保留n位。位。2.4 數(shù)組數(shù)組 數(shù)組是相同類型的變量按順序組成的一種數(shù)組是相同類型的變量按順序組成的一種復合數(shù)據(jù)類型,稱這些相同類型的變量為數(shù)組復合數(shù)據(jù)類型,稱這些相同類型的變量為數(shù)組的元素或單元。數(shù)組通過的元素或單元。數(shù)組通過數(shù)組名數(shù)組名加加索引索引來使用來使用數(shù)組的元素。索引從數(shù)組的元素。索引從0 0開始。開始。 2.4.1 聲明數(shù)組聲明數(shù)組 聲明一維數(shù)組有下列兩種格式:聲明一維數(shù)組有下列兩種格

18、式: 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字 ; 或或 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字; 例如:例如:float boy; 或或 float boy; 聲明聲明2維數(shù)組有下列兩種格式:維數(shù)組有下列兩種格式: 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字; 或或 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字; 例如:例如:char cat; 或或 char cat; 數(shù)組boy的元素可以存放float型數(shù)據(jù)、數(shù)組cat的元素可以存放char型數(shù)據(jù)。數(shù)組的元素的類型可以是數(shù)組的元素的類型可以是Java的任何一種類型。的任何一種類型。 假如已經(jīng)聲明了一種People類型數(shù)

19、據(jù),那么可以如下聲明一個數(shù)組: People china; 數(shù)組china的元素可以存放People類型的數(shù)據(jù)。 2.4.2 創(chuàng)建數(shù)組創(chuàng)建數(shù)組 為數(shù)組分配內存空間的格式如下為數(shù)組分配內存空間的格式如下: 數(shù)組名字 = new 數(shù)組元素的類型數(shù)組元素的個數(shù); 例如:例如: boy= new float4; 為數(shù)組分配內存空間后,數(shù)組為數(shù)組分配內存空間后,數(shù)組boy獲得獲得4個用來存放個用來存放float類型數(shù)類型數(shù)據(jù)的內存空間,即據(jù)的內存空間,即4個個float型元素。型元素。數(shù)組變量數(shù)組變量boy中存放著這些內存單元的首地址中存放著這些內存單元的首地址,該地址稱作數(shù),該地址稱作數(shù)組的引用,這樣

20、數(shù)組就可以通過索引操作這些內存單元組的引用,這樣數(shù)組就可以通過索引操作這些內存單元 。boy圖圖2.4 數(shù)組的內存模型數(shù)組的內存模型 0 x785BAboy0boy1boy2boy3聲明數(shù)組和創(chuàng)建數(shù)組可以一起完成,例如:float boy=new float4;二維數(shù)組和一維數(shù)組一樣,在聲明之后必須用new運算符分配內存空間,例如:int mytwo; mytwo=new int 34;或 int mytwo=new int34; 2.4.3 數(shù)組元素的使用數(shù)組元素的使用 一維數(shù)組通過索引符訪問自己的元素,如boy0,boy1等。注意:注意:索引從0開始,數(shù)組若有7個元素,那么索引到6為止,如

21、果程序使用了如下語句:boy7=384.98f;程序運行時將發(fā)生.ArrayIndexOutOfBoundsException異常,因此在使用數(shù)組時必須謹慎,防止索引越界。二維數(shù)組也通過索引符訪問自己的元素,如a01,a12等;需要注意的是索引從0開始,比如聲明創(chuàng)建了一個二維數(shù)組a:int a = new int23;那么第一個索引的變化范圍從0到1,第二個索引變化范圍從0到2。 2.4.4 lengthlength的使用的使用 一數(shù)組的元素的個數(shù)稱作數(shù)組的長度。對于一維數(shù)組,“數(shù)組名字.length”的值就是數(shù)組中元素的個數(shù)。對于二維數(shù)組“數(shù)組名字.length”的值是它含有的一維數(shù)組的個數(shù)

22、。 對于 float a = new float12; a.length的值12對于 int b = new int36; b.length的值是3 2.4.5 數(shù)組的初始化數(shù)組的初始化 創(chuàng)建數(shù)組后,系統(tǒng)會給每個數(shù)組元素一個默認的值,如,float型是0.0。 在聲明數(shù)組時同時也可以給數(shù)組的元素一個初始值,如:float boy = 21.3f,23.89f,2.0f,23f,778.98f;也可以直接用若干個一維數(shù)組初始化一個二維數(shù)組。 2.4.6 數(shù)組的引用數(shù)組的引用 數(shù)組屬于引用型變量,因此兩個相同類型的數(shù)組如果具有相同的引用,它們就有完全相同的元素。例如,對于int a = 1,2,3

23、,b = 4,5;int a = 1,2,3,b = 4,5; 如果使用了下列賦值語句(a和b的類型必須相同):a=b; 那么a中存放的引用和b的相同。 例例2-42-4 2.4.7 表示格式表示格式 ArraysArrays類調用類調用 public static String toString(int a)public static String toString(int a)方法,可以得到參數(shù)指定的一維數(shù)組a的如下格式的字符串表示: a0,a1 aa.length-1a0,a1 aa.length-12.4.8 復制數(shù)組復制數(shù)組 1arraycopy方法方法 System System類

24、調用方法類調用方法 public static void arraycopy( public static void arraycopy(sourceArraysourceArray, ,int index1int index1,copyArray,int index2,copyArray,int index2,int lengthint length) )可以將數(shù)可以將數(shù)組組sourceArraysourceArray從索引從索引index1index1開始后的開始后的lengthlength個元素個元素中的數(shù)據(jù)復制到數(shù)組中的數(shù)據(jù)復制到數(shù)組copyArraycopyArray中,中,copyArraycopyArray數(shù)組從第數(shù)組從第index2index2元素開始存放這些數(shù)據(jù)。元素開始存放這些數(shù)據(jù)。 例例2-52-5 2copyOf和和copyOfRange()方法方法 ArraysArrays類調用類調用copyOf方法方法復制整個數(shù)組復制整個數(shù)組中元素的值到

溫馨提示

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

評論

0/150

提交評論