基本類型、數(shù)組、枚舉類型課件_第1頁
基本類型、數(shù)組、枚舉類型課件_第2頁
基本類型、數(shù)組、枚舉類型課件_第3頁
基本類型、數(shù)組、枚舉類型課件_第4頁
基本類型、數(shù)組、枚舉類型課件_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章基本類型、數(shù)組和枚舉類型2.1 標識符和關鍵字2.2 基本數(shù)據(jù)類型2.3 從命令行輸入輸出數(shù)據(jù)2.4 數(shù)組2.5 枚舉類型主要內(nèi)容2.1 標識符和關鍵字 1.1.標識符標識符 用來標識用來標識類名類名、變量名變量名、方法名方法名、類型名類型名、數(shù)組數(shù)組名名、文件名文件名的的有效字符序列有效字符序列稱為標識符。稱為標識符。 簡單地說,簡單地說,標識符就是一個名字標識符就是一個名字。2. 標識符的命名規(guī)則:標識符的命名規(guī)則:p標識符必須以標識符必須以字母字母、下劃線(下劃線(_ _)或美元符或美元符($ $)開頭,后開頭,后面可以跟面可以跟字母、數(shù)字、下劃線或美元符;字母、數(shù)字、下劃線或美元

2、符;p標識符可以包含數(shù)字,但標識符可以包含數(shù)字,但開頭;開頭;p除下劃線除下劃線“_”_”和和“$”$”符號外,標識符中不包含任何特殊符號外,標識符中不包含任何特殊字符,如空格;字符,如空格;p標識符標識符區(qū)分大小寫區(qū)分大小寫,比如,比如,“abcabc”和和“AbcAbc”是兩個不同是兩個不同的標識符;的標識符;p對于標識符的對于標識符的沒有限制;沒有限制;p不能使用不能使用JavaJava關鍵字關鍵字作為標識符;作為標識符;p使用使用UnicodeUnicode標準字符集標準字符集作為標示符;作為標示符;2.1 標識符和關鍵字 2.1 標識符和關鍵字 3.3.關鍵字關鍵字 關鍵字關鍵字就是

3、就是Java語言中已經(jīng)被語言中已經(jīng)被賦予特定意義賦予特定意義的一些的一些單詞。單詞。 不可以把關鍵字做為不可以把關鍵字做為標識符標識符來用。來用。 abstract assert boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int inte rface long native new package private protected publi

4、c return short static strictfp super switch synchonized this throw throws transient try void volatile while 2.2 基本數(shù)據(jù)類型 浮點類型浮點類型單精度型(單精度型(float) 4個字節(jié)個字節(jié)雙精度型(雙精度型(double) 8個字節(jié)個字節(jié)邏輯類型(邏輯類型(boolean)字節(jié)型(字節(jié)型(bytebyte) 1 1字節(jié)字節(jié)短整型(短整型(shortshort) 2 2字節(jié)字節(jié)整整 型(型(intint) 4 4字節(jié)字節(jié)長整型(長整型(longlong) 8 8字節(jié)字節(jié)整數(shù)類型整數(shù)類

5、型 基本類型基本類型引用類型引用類型類(類(class)接口(接口(interface)數(shù)組數(shù)組枚舉(枚舉(enum)注解(注解(annotation)數(shù)據(jù)數(shù)據(jù)類型類型字符類型(字符類型(char) 2字節(jié)字節(jié) 基本數(shù)據(jù)類型容納的值及其范圍基本數(shù)據(jù)類型容納的值及其范圍類型類型大?。ㄎ唬┐笮。ㄎ唬┤≈捣秶≈捣秶鷅ytebyte(字節(jié)型)(字節(jié)型)8 8-2-27 72 27 7-1-1shortshort(短整型)(短整型)1616-2-215152 21515-1-1intint(整型)(整型)3232-2-231312 23131-1-1longlong(長整型)(長整型)6464-2-2

6、63632 26363-1-1doubledouble(雙精度)(雙精度)32323.4e-383.4e-383.4e+383.4e+38floatfloat(浮點型)(浮點型)64641.7e-381.7e-381.7e+381.7e+38booleanboolean(布爾型)(布爾型)1 1true / falsetrue / falsecharchar(字符型)(字符型)1616u0000uFFFFu0000uFFFF2.2 2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 引用類型引用類型類型類型說明說明數(shù)組數(shù)組具有相同數(shù)據(jù)類型的變量的集合具有相同數(shù)據(jù)類型的變量的集合 類類(class)(class)

7、變量和方法的集合。如變量和方法的集合。如EmployeeEmployee類包含了員工的詳細類包含了員工的詳細信息和操作這些信息的方法信息和操作這些信息的方法接口接口(interface)(interface)是一系列方法的聲明,方法特征的集合??梢詫崿F(xiàn)是一系列方法的聲明,方法特征的集合??梢詫崿F(xiàn)JavaJava中的多重繼承中的多重繼承枚舉枚舉(enum)(enum)枚舉類型是一種獨特的值類型,它用于聲明一組命名枚舉類型是一種獨特的值類型,它用于聲明一組命名的常數(shù)的常數(shù)注解注解(annotation)(annotation)AnnotationAnnotation提供一種機制,將程序的元素如提供

8、一種機制,將程序的元素如: :類類, ,方法方法, ,屬性屬性, ,參數(shù)參數(shù), ,本地變量本地變量, ,包和元數(shù)據(jù)聯(lián)系起來包和元數(shù)據(jù)聯(lián)系起來2.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型2.2 基本數(shù)據(jù)類型 一、常量一、常量 常量常量十進制數(shù):十進制數(shù):八八進制數(shù):進制數(shù):十六十六進制數(shù):進制數(shù):字符常量字符常量整型常量整型常量以非以非0開始的數(shù),如:開始的數(shù),如:220、-560、+369等。等。以以0開始的數(shù),如:開始的數(shù),如:06、0106、0677等。等。以以0X或或0 x開始的數(shù):開始的數(shù):0X123、0 xab、 0X4e浮點型常量浮點型常量(十進制十進制實數(shù)實數(shù))一般一般形式形式指數(shù)指數(shù)形式形

9、式由數(shù)字、小數(shù)點以及必要時的正負號組成。由數(shù)字、小數(shù)點以及必要時的正負號組成。如:如:29.56、-56.33、0.056、.056、0.0等。等。相當于科學計數(shù)法,將形如相當于科學計數(shù)法,將形如a10b的數(shù)值的數(shù)值表示成如下形式:表示成如下形式: aEb 或或 aeb如:如: 2.956E3、-0.789e8、.792e-6等。等。 用兩個英文單引號限定的一個字符,如:用兩個英文單引號限定的一個字符,如:a 、9 、Z等。等。另外,還有以另外,還有以“”開頭的轉(zhuǎn)義字符常量,如開頭的轉(zhuǎn)義字符常量,如n。邏輯常量邏輯常量true(真)(真)false(假)(假)注意不同類型常量的表示方法注意不同

10、類型常量的表示方法1、long 型型 常量:常量:long型常量用后綴型常量用后綴L來表示,例如來表示,例如108L(十進制十進制)、07123L(八進制八進制)、0 x3ABCL(十六進制十六進制) ,后綴用,后綴用L或或l表示。表示。 2、 float型型 常量:常量:453.5439f,21379.987F,231.0f ,后綴用后綴用F或或f表表示。需要特別注意的是:示。需要特別注意的是:常量后面必須要有后綴常量后面必須要有后綴“f”或或“F”。 3、double 型型 常量:常量:2389.539d,2318908.987,0.05(小數(shù)表示法),(小數(shù)表示法), 后綴用后綴用D或或

11、d表示。表示。 float x=123.78 對嗎?為什么?對嗎?為什么? 1. 標識符的命名規(guī)則:標識符的命名規(guī)則:p標識符必須以標識符必須以字母字母、下劃線(下劃線(_ _)或美元符或美元符($ $)開頭,后開頭,后面可以跟面可以跟字母、數(shù)字、下劃線或美元符;字母、數(shù)字、下劃線或美元符;p標識符可以包含數(shù)字,但標識符可以包含數(shù)字,但開頭;開頭;p除下劃線除下劃線“_”_”和和“$”$”符號外,標識符中不包含任何特殊符號外,標識符中不包含任何特殊字符,如空格;字符,如空格;p標識符標識符區(qū)分大小寫區(qū)分大小寫,比如,比如,“abcabc”和和“AbcAbc”是兩個不同是兩個不同的標識符;的標識

12、符;p對于標識符的對于標識符的沒有限制;沒有限制;p不能使用不能使用JavaJava關鍵字關鍵字作為標識符;作為標識符;p使用使用UnicodeUnicode標準字符集標準字符集作為標示符;作為標示符;上節(jié)主要內(nèi)容 上節(jié)主要內(nèi)容浮點類型浮點類型單精度型(單精度型(float) 4個字節(jié)個字節(jié)雙精度型(雙精度型(double) 8個字節(jié)個字節(jié)邏輯類型(邏輯類型(boolean)字節(jié)型(字節(jié)型(bytebyte) 1 1字節(jié)字節(jié)短整型(短整型(shortshort) 2 2字節(jié)字節(jié)整整 型(型(intint) 4 4字節(jié)字節(jié)長整型(長整型(longlong) 8 8字節(jié)字節(jié)整數(shù)類型整數(shù)類型 基本類

13、型基本類型引用類型引用類型類(類(class)接口(接口(interface)數(shù)組數(shù)組枚舉(枚舉(enum)注解(注解(annotation)數(shù)據(jù)數(shù)據(jù)類型類型字符類型(字符類型(char) 2字節(jié)字節(jié)2、數(shù)據(jù)類型、數(shù)據(jù)類型上節(jié)主要內(nèi)容3 3、常量、常量 常量常量十進制數(shù):十進制數(shù):八八進制數(shù):進制數(shù):十六十六進制數(shù):進制數(shù):字符常量字符常量整型常量整型常量以非以非0開始的數(shù),如:開始的數(shù),如:220、-560、+369等。等。以以0開始的數(shù),如:開始的數(shù),如:06、0106、0677等。等。以以0X或或0 x開始的數(shù):開始的數(shù):0X123、0 xab、 0X4e浮點型常量浮點型常量(十進制十進

14、制實數(shù)實數(shù))一般一般形式形式指數(shù)指數(shù)形式形式由數(shù)字、小數(shù)點以及必要時的正負號組成。由數(shù)字、小數(shù)點以及必要時的正負號組成。如:如:29.56、-56.33、0.056、.056、0.0等。等。相當于科學計數(shù)法,將形如相當于科學計數(shù)法,將形如a10b的數(shù)值的數(shù)值表示成如下形式:表示成如下形式: aEb 或或 aeb如:如: 2.956E3、-0.789e8、.792e-6等。等。 用兩個英文單引號限定的一個字符,如:用兩個英文單引號限定的一個字符,如:a 、9 、Z等。等。另外,還有以另外,還有以“”開頭的轉(zhuǎn)義字符常量,如開頭的轉(zhuǎn)義字符常量,如n。邏輯常量邏輯常量true(真)(真)false(假

15、)(假)上節(jié)主要內(nèi)容long 型型 常量:常量:long型常量用后綴型常量用后綴L來表示,例如來表示,例如108L(十進制十進制)、07123L(八進制八進制)、0 x3ABCL(十六進制十六進制) ,后綴用,后綴用L或或l表示。表示。 float型型 常量:常量:453.5439f,21379.987F,231.0f ,后綴用后綴用F或或f表表示。需要特別注意的是:示。需要特別注意的是:常量后面必須要有后綴常量后面必須要有后綴“f”或或“F”。 double 型型 常量:常量:2389.539d,2318908.987,0.05(小數(shù)表示法),(小數(shù)表示法), 后綴用后綴用D或或d表示。表示

16、。 float x=123.78 對嗎?為什么?對嗎?為什么? 4、long 型、浮點型常量表示方法型、浮點型常量表示方法 轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符含義含義ddd1到3位8進制數(shù)所表示的字符uxxxx1到4位16進制數(shù)所表示的字符單引號”雙引號反斜杠b退格r回車n換行t制表符2.2 基本數(shù)據(jù)類型轉(zhuǎn)義符應用舉例Example2_1.javapublic class Example2_1 public static void main (String args ) char ch1=,ch2=好; int p1=32831,p2=30452; System.out.println(+ch1+的位置

17、:+(int)ch1); System.out.println(+ch2+的位置:+(int)ch2); System.out.println(第+p1+個位置上的字符是:+(char)p1); System.out.println(第+p2+個位置上的字符是:+(char)p2); 2.2 基本數(shù)據(jù)類型 二、變量二、變量 變量定義的一般格式為:變量定義的一般格式為:數(shù)據(jù)類型標識符變量名表;數(shù)據(jù)類型標識符變量名表;說明說明:數(shù)據(jù)類型符用來說明變量的數(shù)據(jù)類型,它可以是數(shù)據(jù)類型符用來說明變量的數(shù)據(jù)類型,它可以是Java語言提語言提供的任意一種類型。供的任意一種類型。變量名表可以是一個變量,也可以是

18、多個變量,多個變量之變量名表可以是一個變量,也可以是多個變量,多個變量之間用逗號分隔。間用逗號分隔。 程序中用到的變量,必須程序中用到的變量,必須“先定義后使用先定義后使用”。變量的初始化變量的初始化 變量在使用之前必須被初始化,也就是至少被賦值一次。變量在使用之前必須被初始化,也就是至少被賦值一次。 可以聲明的同時賦值:可以聲明的同時賦值:int i = 10;int i = 10;String s = “abcd”;String s = “abcd”;也可以聲明以后再賦值:也可以聲明以后再賦值:int i;int i;String s;String s;i = 99;i = 99;s =

19、“xyz”;s = “xyz”;2.2 基本數(shù)據(jù)類型 2.2 基本數(shù)據(jù)類型 例:例: 字符型變量應用舉例字符型變量應用舉例public class Test2 public static void main(String args) char x,y; x=a; y=97; System.out.println(x); System.out.println(y); 2.2 基本數(shù)據(jù)類型 三、基本數(shù)據(jù)類型的轉(zhuǎn)換三、基本數(shù)據(jù)類型的轉(zhuǎn)換 當把一當把一種數(shù)據(jù)類型種數(shù)據(jù)類型變量變量賦值賦值給另一種給另一種基本類型基本類型變量時,就要數(shù)據(jù)轉(zhuǎn)換。變量時,就要數(shù)據(jù)轉(zhuǎn)換。Java中數(shù)據(jù)的基本類型(不包括邏輯類型

20、)按中數(shù)據(jù)的基本類型(不包括邏輯類型)按精度精度從從“低低”到到“高高”排列:排列: byte short char int long float double (1)當把)當把級別低級別低的變量的值賦給的變量的值賦給級別高級別高的變量時,系統(tǒng)的變量時,系統(tǒng)自動自動完成數(shù)完成數(shù)據(jù)類型的轉(zhuǎn)換。例如:據(jù)類型的轉(zhuǎn)換。例如: float x=100; (2)當把)當把級別高的變量級別高的變量的值賦給的值賦給級別低的變量級別低的變量時,必須使用時,必須使用顯式顯式類類型轉(zhuǎn)換運算。型轉(zhuǎn)換運算。 顯式顯式轉(zhuǎn)換的格式:轉(zhuǎn)換的格式:(類型名)(類型名)要轉(zhuǎn)換的值要轉(zhuǎn)換的值; 例如:例如: int x=(int)

21、34.89; float x= 12.4 錯誤?為什么!錯誤?為什么! 正確方式:正確方式:float x=(float)12.4 或者或者 float x=12.4f基本類型轉(zhuǎn)換應用舉例Example2_2.javapublic class Example2_2 public static void main (String args ) int c=128; long d=77777; float f=2e3F; double g=3.14e-300; /指數(shù)表示法 double result=f*g; System.out.println(f=+f); System.out.printl

22、n(g=+g); System.out.println(rerult=+result); g=1234.123456789; /小數(shù)表示法 c=(int)d; f=(float)g; /導致精度的損失 System.out.print( c= +c); System.out.println( d= +d); System.out.println(f=+f); System.out.println(g=+g); 2.3 從命令行輸入輸出數(shù)據(jù) 一、輸入基本型數(shù)據(jù)一、輸入基本型數(shù)據(jù) 可以利用可以利用Scanner類來實現(xiàn)基本型數(shù)據(jù)的輸入。類來實現(xiàn)基本型數(shù)據(jù)的輸入。 使用Scanner類創(chuàng)建一個對象:

23、 Scanner reader=new Scanner(System.in); reader對象調(diào)用下列方法,讀取用戶在命令行(例如,MS-DOS窗口)輸入的各種基本類型數(shù)據(jù): nextBoolean()、 nextByte()、 nextShort()、 nextInt() nextLong()、nextFloat()、nextDouble()。 上述方法執(zhí)行時都會堵塞,程序等待用戶在命令行輸入數(shù)據(jù)回車確認。輸入數(shù)據(jù)應用舉例xample2_3.javaimport java.util.Scanner;public class Example2_3 public static void mai

24、n (String args ) System.out.println(請輸入若干個數(shù),每輸入一個數(shù)回車確認); System.out.println(最后輸入數(shù)字0結束輸入操作); Scanner reader=new Scanner(System.in); double sum=0; int m=0; double x = reader.nextDouble(); while(x!=0) m=m+1; sum=sum+x; x=reader.nextDouble(); System.out.println(m+個數(shù)的和為+sum); System.out.println(m+個數(shù)的平均值+

25、sum/m); 2.3 從命令行輸入輸出數(shù)據(jù) 二、輸出基本型數(shù)據(jù)二、輸出基本型數(shù)據(jù) (1)用System.out.println() 或 System.out.print() 可輸出串值、表達式的值。 二者的區(qū)別是前者輸出數(shù)據(jù)后換行,后者不換行。 (2)允許使用并置符號:“+”將變量、表達式或一個常數(shù)值與一個字符串并置一起輸出,如: System.out.println(m+個數(shù)的和為+sum); System.out.println(“:”+123+“大于”+122) (3) JDK1.5新增了和C語言中printf函數(shù)類似的數(shù)據(jù)輸出方法,該方法使用格式如下: (a)System.out.p

26、rintf(格式控制部分,表達式1,表達式2,表達式n) (b)格式控制部分由格式控制符號:%d、%c、%f、%s和普通的字符組成,普通字符原樣輸出。 (c)格式符號用來輸出表達式的值: %d:輸出int類型數(shù)據(jù)值 %c:輸出char型數(shù)據(jù)。 %f:輸出浮點型數(shù)據(jù),小數(shù)部分最多保留6位 %s:輸出字符串數(shù)據(jù)。 (d) 輸出數(shù)據(jù)時也可以控制數(shù)據(jù)在命令行的位置,例如: %md:輸出的int型數(shù)據(jù)占m列 %m.nf:輸出的浮點型數(shù)據(jù)占m列,小數(shù)點保留n位。2.4 數(shù)組數(shù)組是數(shù)組是相同類型的變量相同類型的變量按順序組成的一種復合數(shù)按順序組成的一種復合數(shù)據(jù)類型,稱這些相同類型的變量為數(shù)組的元素或據(jù)類型,

27、稱這些相同類型的變量為數(shù)組的元素或單元。單元。數(shù)組通過數(shù)組通過數(shù)組名數(shù)組名加加索引索引來使用數(shù)組的元素。索引來使用數(shù)組的元素。索引從從0開始。開始。2.4.1 聲明數(shù)組聲明數(shù)組包括數(shù)組的名字、數(shù)組元素的數(shù)據(jù)類型。(1)聲明一維數(shù)組有下列兩種格式:)聲明一維數(shù)組有下列兩種格式: 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字 ; 或或 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字; 例如:例如:float boy ; 或或 float boy; 數(shù)組長度數(shù)組長度length 數(shù)組數(shù)組.length(2)聲明)聲明2維數(shù)組有下列兩種格式:維數(shù)組有下列兩種格式: 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組

28、名字數(shù)組名字; 或或 數(shù)組的元素類型數(shù)組的元素類型 數(shù)組名字數(shù)組名字; 例如:例如:char cat ; 或或 char cat; 數(shù)組boy的元素存放float型數(shù)據(jù)、數(shù)組cat的元素存放char型數(shù)據(jù)。2.4.1 聲明數(shù)組(3)數(shù)組的元素的類型可以是)數(shù)組的元素的類型可以是Java的的任何任何一種類型一種類型 假如已經(jīng)聲明了一種People類型數(shù)據(jù),那么可以如下聲明一個數(shù)組: People china ; 數(shù)組china的元素可以存放People類型的數(shù)據(jù)。 注:與注:與C、C+不同,不同,Java不允許在聲明數(shù)組的方括號內(nèi)指不允許在聲明數(shù)組的方括號內(nèi)指定數(shù)組元素的個數(shù)。定數(shù)組元素的個數(shù)。

29、 比如:比如:int a12; 或或 int 12 a;將導致語法錯誤。將導致語法錯誤。2.4.2 創(chuàng)建數(shù)組廣義的講,數(shù)組也是一種數(shù)據(jù)類型:聲明數(shù)組僅僅給出了數(shù)組名字數(shù)組名字和元素的數(shù)據(jù)類型數(shù)據(jù)類型,要想真正使用數(shù)組還必須為它分配內(nèi)存空間分配內(nèi)存空間,即創(chuàng)建數(shù)組。 這也是剛才講的數(shù)組聲明時不得指定元素數(shù)目的原因數(shù)組聲明時不得指定元素數(shù)目的原因?。?)一維數(shù)組創(chuàng)建及內(nèi)存空間分配)一維數(shù)組創(chuàng)建及內(nèi)存空間分配: 數(shù)組名字 = new 數(shù)組元素的類型數(shù)組元素的個數(shù); 例如:例如: float boy ; boy= new float4;數(shù)組數(shù)組boy獲得獲得4個用來存放個用來存放float類型數(shù)據(jù)的內(nèi)

30、存空間(如圖)類型數(shù)據(jù)的內(nèi)存空間(如圖)。數(shù)組變量數(shù)組變量boy中存放著這些內(nèi)中存放著這些內(nèi)存單元的首地址存單元的首地址,該地址稱作,該地址稱作數(shù)組的引用數(shù)組的引用,這樣數(shù)組就可以,這樣數(shù)組就可以通過索引操作這些內(nèi)存單元通過索引操作這些內(nèi)存單元 。boy圖圖2.4 數(shù)組的內(nèi)存模型數(shù)組的內(nèi)存模型 0 x785BAboy0boy1boy2boy32.4.2 創(chuàng)建數(shù)組創(chuàng)建數(shù)組(2)聲明數(shù)組和創(chuàng)建數(shù)組可以一起完成,如:)聲明數(shù)組和創(chuàng)建數(shù)組可以一起完成,如: float boy=new float4; (3)二維數(shù)組聲明以及分配內(nèi)存空間:)二維數(shù)組聲明以及分配內(nèi)存空間: 例如:int mat; mat=

31、new int 23; 或 int mat=new int23; (4)二維數(shù)組可以看做若干個一維數(shù)組組成的,由此可以)二維數(shù)組可以看做若干個一維數(shù)組組成的,由此可以采用采用“數(shù)組的數(shù)組數(shù)組的數(shù)組”聲明多維數(shù)組。聲明多維數(shù)組。二維數(shù)組可以看做若干個一維數(shù)組組成的二維數(shù)組可以看做若干個一維數(shù)組組成的 int mat; mat=new int 23; 2.4.3 數(shù)組元素的使用數(shù)組元素的使用(1)一維數(shù)組通過)一維數(shù)組通過索引符索引符訪問自己的元素,如訪問自己的元素,如 boy0,boy1等。 注意:注意:索引從0開始,數(shù)組若有7個元素,那么索引到6為止,如果程序使用了如下語句:boy7=384.

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

33、= new float12; a.length的值12(2)對于二維數(shù)組“數(shù)組名字.length”的值是它含有的一維數(shù)組的個數(shù)。 對于 int b = new int36; b.length的值是3 2.4.5 數(shù)組的初始化數(shù)組的初始化 創(chuàng)建數(shù)組后,系統(tǒng)會給每個數(shù)組元素一個默認的值,如,float型是0.0。 (1)在聲明數(shù)組時同時也可以給數(shù)組的元素一個初始值,如: float boy = 21.3f,23.89f,2.0f,23f,778.98f; (2)也可以直接用若干個一維數(shù)組初始化一個二維數(shù)組,這些一維數(shù)組的長度不盡相同,如: Int a=1,1,1,1,2,1,1,3,3,1,1,4

34、,6,4,12.4.6 數(shù)組的引用數(shù)組的引用 數(shù)組屬于引用型變量,因此兩個相同類型的數(shù)組如果具有相同的引用相同的引用,它們就有完全相同的元素。 (注意:數(shù)組引用和數(shù)組的使用的區(qū)別,引用是地址賦值范疇) 例如,對于下列數(shù)組: int a = 1,2,3 b = 4,5; 如果使用了下列賦值語句(a和b的類型必須相同): a=b; 那么a中存放的引用和b的相同。 ( 見下圖)2.4.6 數(shù)組的引用 數(shù)組的引用 舉例舉例Example2_4.javapublic class Example2_4 public static void main(String args) int a=1,2,3,4;

35、int b=100,200,300; System.out.println(數(shù)組a的元素個數(shù)=+a.length); System.out.println(數(shù)組b的元素個數(shù)=+b.length); System.out.println(數(shù)組a的引用=+a); System.out.println(數(shù)組b的引用=+b); System.out.println(a=b的結果是+(a=b); a=b; System.out.println(數(shù)組a的元素個數(shù)=+a.length); System.out.println(數(shù)組b的元素個數(shù)=+b.length); System.out.println(a

36、=b的結果是+(a=b); System.out.println(a0=+a0+,a1=+a1+,a2=+a2); System.out.print(b0=+a0+,b1=+b1+,b2=+b2); 數(shù)組的引用 注意事項注意事項注意:對于char型數(shù)組a,System.out.println(a)不會輸出數(shù)組a的引用,而是輸出數(shù)組a的全部元素的值。要想輸出char型數(shù)組a的引用,必須讓數(shù)組a和字符竄做并置運算: System.out.println(“”+a);2.4.7 數(shù)組的表示格式數(shù)組的表示格式 Arrays類調(diào)用類調(diào)用 public static String toString(int

37、 a)方法,可以得到參數(shù)指定的一維數(shù)組a的如下格式的字符串表示: a0,a1 aa.length-1 例如:對于數(shù)組例如:對于數(shù)組 Int a=1,2,3,4,5,6 Arrays. toString(a)得到的字符串是:得到的字符串是: 1,2,3,4,5,6 注:toString是所有對象的一種方法,可以改寫!是所有對象的一種方法,可以改寫!2.4.8 復制數(shù)組 數(shù)組間的賦值,可用循環(huán)實現(xiàn),也可用下邊提供的方法實現(xiàn)!1arraycopy方法 System類調(diào)用方法: public static void arraycopy(sourceArray,int index1,copyArray,

38、int index2,int length)sourceArray:源數(shù)組名 index1:原數(shù)組開始位置copyArray:目標數(shù)組名 index2:目標數(shù)組開始位置Length:復制長度 可以將數(shù)組sourceArray從索引index1開始后的length個元素中的數(shù)據(jù)復制到數(shù)組copyArray中,copyArray數(shù)組從第index2元素開始存放這些數(shù)據(jù)。 例2-5:import java.util.Arrays;public class Example2_5 public static void main(String args) char a = a,b,c, d,e,f, b

39、= 1,2,3,4,5,6; int c =1,2,3,4,5,6, d = 10,20,30,40,50,60; System.arraycopy(a, 0, b, 0, a.length); System.arraycopy(c, 2, d, 2, c.length-3); System.out.println(數(shù)組數(shù)組 a 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(a); System.out.println(數(shù)組數(shù)組 b 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toS

40、tring(b); System.out.println(數(shù)組數(shù)組 c 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(c); System.out.println(數(shù)組數(shù)組 d 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(d); /System.out.println(a); /System.out.println(+a); 2.4.8 復制數(shù)組2 2copyOfcopyOf和和copyOfRange()copyOfRange()方法方法 copyOfcopyOf:

41、 :把整個數(shù)組中元素的值復制到另一個把整個數(shù)組中元素的值復制到另一個新的新的數(shù)組中。數(shù)組中。public static double public static double copyOfcopyOf(double original (double original ,int newLength)int newLength) 復制源數(shù)組中從復制源數(shù)組中從0開始的開始的newlength個元素的值到另一個數(shù)組中。個元素的值到另一個數(shù)組中。 根據(jù)不同的數(shù)據(jù)類型,還有多種數(shù)據(jù)類型表示根據(jù)不同的數(shù)據(jù)類型,還有多種數(shù)據(jù)類型表示例如:例如:Int a=100,200,300,400Int a=100,20

42、0,300,400Int b=Arrays.copyof(a,5)Int b=Arrays.copyof(a,5)那么:那么:b0=100b0=100 b1=200 b1=200 b2=300 b2=300 b4=400 b4=400 b5=0 b5=0 2.4.8 復制數(shù)組copyOfRange()copyOfRange()方法方法 copyOfRange()copyOfRange()方法把數(shù)組中方法把數(shù)組中部分元素部分元素的值復制到另一個的值復制到另一個新數(shù)新數(shù)組組中。中。public static double public static double copyOfRangecopyOf

43、Range(double original,int (double original,int from from ,int ,int toto) ) 功能:從功能:從from -from -(to -1to -1)的元素復制到一個新數(shù)組中的元素復制到一個新數(shù)組中 ; 注:新數(shù)組長度為注:新數(shù)組長度為( to from )( to from ) 例如:例如:Int a=100,200,300,400Int a=100,200,300,400,500,600500,600Int b=Arrays.copyofRange(a,2Int b=Arrays.copyofRange(a,2,5)5)那么:

44、那么:b0=300b0=300 b1=400 b1=400 b2=500 b2=500例例2-62-6import java.util.*;public class Example2_6 public static void main(String args) int a =10,20,30,40,50,60,b,c,d; b=Arrays.copyOf(a,10); System.out.println(數(shù)組數(shù)組 a 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(a); System.out.println(數(shù)組數(shù)組 b 的各個

45、元素中的值的各個元素中的值:); System.out.println(Arrays.toString(b); c=Arrays.copyOfRange(a,3,5); System.out.println(數(shù)組數(shù)組 c 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(c); d=Arrays.copyOfRange(a,3,9); System.out.println(數(shù)組數(shù)組 d 的各個元素中的值的各個元素中的值:); System.out.println(Arrays.toString(d); 2.4.9 排序與二分查找1Ar

46、ray類調(diào)用 Arrays.sort(a) 方法 把數(shù)組a中的元素按升序排序。2Array類調(diào)用 Arrays.sort (a , start , end) 方法 把數(shù)組a中的元素中索引star到end-1的元素值按升序排序。3Array類調(diào)用(二分法) Arrays.binarySearch( a, number)方法 在有序數(shù)組a中,查找元素number, 若存在則返回number在a中的索引,否則返回一個負數(shù)。 例2-7import java.util.*;public class Example2_7 public static void main(String args) int a=12,34,9,23,45,6,45,90,123,1

溫馨提示

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

評論

0/150

提交評論