java變量與基礎(chǔ)語(yǔ)法(同名69)課件_第1頁(yè)
java變量與基礎(chǔ)語(yǔ)法(同名69)課件_第2頁(yè)
java變量與基礎(chǔ)語(yǔ)法(同名69)課件_第3頁(yè)
java變量與基礎(chǔ)語(yǔ)法(同名69)課件_第4頁(yè)
java變量與基礎(chǔ)語(yǔ)法(同名69)課件_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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變量與基礎(chǔ)語(yǔ)法 標(biāo)識(shí)符與關(guān)鍵字 基本數(shù)據(jù)類(lèi)型運(yùn)算符與表達(dá)式程序的流程結(jié)構(gòu)(分支,循環(huán))數(shù)組方法基本的輸入與輸出本章目標(biāo)簡(jiǎn)單輸出語(yǔ)句如果要將某些信息打印到屏幕上,就必須使用輸出語(yǔ)句;使用System.out.println()實(shí)現(xiàn)換行輸出效果;使用System.out.print()實(shí)現(xiàn)輸出但不換行效果;無(wú)論輸出什么類(lèi)型的數(shù)據(jù),只需將數(shù)據(jù)作為參數(shù)傳遞給它們即可,而無(wú)需像C語(yǔ)言中那樣,使用%s、%d之類(lèi)的控制字符,如:int a = 10;float f = 3.14f;System.out.println(a);System.out.print(f);System.out.printl

2、n(X);簡(jiǎn)單輸入語(yǔ)句使用System.in.read()實(shí)現(xiàn)輸入效果; read()函數(shù)的返回值是字符的Unicode值,是int類(lèi)型的。 public static void main(String args) throws IOException int charc = System.in.read(); System.out.printf(%c, charc); JDK5中還增加了Scanner類(lèi)用于,可用于輸入。 概念: 在編寫(xiě)程序時(shí),對(duì)各種變量,方法和類(lèi)等要素命名時(shí)使用的字符序列稱(chēng)為標(biāo)識(shí)符。命名規(guī)則:只能由字母,下劃線,美元符或數(shù)字組。只能由字母,下劃線”_”和美元符”$”開(kāi)頭。不

3、能是java中的關(guān)鍵字和保留字。說(shuō)明:java中嚴(yán)格區(qū)分大小寫(xiě),所以標(biāo)識(shí)符也是大小寫(xiě)敏感的,但長(zhǎng)度沒(méi)有限制。約定俗成: java標(biāo)識(shí)符的選取要做到”見(jiàn)名知其意” 且不能為java語(yǔ)言中的關(guān)鍵字。定義時(shí)盡量不要與預(yù)定義標(biāo)識(shí)符重名。標(biāo)識(shí)符 關(guān)鍵字: java中一些賦予特定的含義,用做專(zhuān)門(mén)用途的字符串稱(chēng)為關(guān)鍵字(Keyword)。 說(shuō)明: 在一些編輯器和IDE中會(huì)將關(guān)鍵字使用特殊方式和顏色標(biāo)出來(lái)。 在 java 中 所 有的關(guān)鍵字都是英文小寫(xiě)。 在java 中 goto和const 雖然從未被使用,也當(dāng)作關(guān)鍵字保留了下來(lái)。保留字: 不是關(guān)鍵字,但在程序中又不能作為用戶定義標(biāo)識(shí)符的字符串(reserv

4、ed words)。Java中的保留字有:true, false, 和 null 。關(guān)鍵字與保留字JAVA中的關(guān)鍵字abstractcontinuefornewswitchassert*defaultgoto*packagesynchronizedbooleandoifprivatethisbreakdoubleimplementsprotectedthrowbyteelseimportpublicthrowscaseenum*instanceofreturntransient catchextendsintshorttrycharfinalinterfacestaticvoidclassfi

5、nallylongstrictfp*volatileconst*floatnativesuperwhile關(guān)鍵字說(shuō)明*not used*added in 1.2*added in 1.4*added in 5.0標(biāo)識(shí)符舉例合法標(biāo)識(shí)符非法標(biāo)識(shí)符非法說(shuō)明TeStHello World含有空格A11A數(shù)字開(kāi)頭$absb含有不合法字母mainboolean關(guān)鍵字Truetrue保留字_booleanjava的常量類(lèi)型: 整型常量:十進(jìn)制(12) ,十六進(jìn)制 (0 x12),八進(jìn)制(012) 長(zhǎng)整型常量:13L 單精度浮點(diǎn)數(shù):5.1f,.4f ,2e3f ,0f 雙精度浮點(diǎn)數(shù):5.1,.4,2e-3,0

6、d說(shuō)明: 單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)統(tǒng)稱(chēng)為實(shí)型數(shù)。 默認(rèn)的小數(shù)為雙精度浮點(diǎn)數(shù)。 邏輯常量: true 和 false Java常量 字符常量:a , 8, u0027 r表示接受鍵盤(pán)輸入,相當(dāng)于按下了回車(chē)鍵;n是換行;t是制表符,相當(dāng)于table鍵;b是退格鍵,相當(dāng)于Back Space;是單引號(hào),而“是雙引號(hào);是一個(gè)斜杠“”。 字符串常量: “hello project” 注意點(diǎn): 字符串常量和字符常量的區(qū)別。 注意常量這個(gè)名詞的應(yīng)用語(yǔ)境,有時(shí)候,常量這個(gè)名詞應(yīng)用在其他語(yǔ)境中表示值不可變的變量。參見(jiàn)”final關(guān)鍵字”。 Java常量 概念: 變量是系統(tǒng)為程序分配的一塊內(nèi)存存儲(chǔ)單元, 用來(lái)存

7、儲(chǔ)各種數(shù)據(jù)類(lèi)型的數(shù)據(jù),根據(jù)所存儲(chǔ)的變量值的數(shù)據(jù)類(lèi)型不同,可以劃分為各種不同數(shù)據(jù)類(lèi)型的變量,其要素為變量名,數(shù)據(jù)類(lèi)型,變量值和作用域??梢愿鶕?jù)變量名稱(chēng)來(lái)訪問(wèn)其對(duì)應(yīng)內(nèi)存存儲(chǔ)單元中的變量值.如下定義了一個(gè)變量: int age = 20;(其在內(nèi)存表示如右圖) Java變量age20age表示變量名20表示存儲(chǔ)單元名稱(chēng)為age中的值請(qǐng)參見(jiàn)java變量按數(shù)據(jù)類(lèi)型劃分的圖Java變量數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型引用數(shù)據(jù)類(lèi)型數(shù)值型字符型(char)布爾型(boolean)整數(shù)類(lèi)型(byte,int,short,long)浮點(diǎn)類(lèi)型(float,double)類(lèi)(class)接口(interface)數(shù)組by

8、te占用一個(gè)字節(jié),數(shù)字大小為-2727-1short占用兩個(gè)字節(jié),數(shù)字大小為-215215-1 int占用四個(gè)字節(jié),數(shù)字大小為-231231-1 long占用八個(gè)字節(jié),數(shù)字大小為-263263-1 float占用四個(gè)字節(jié),數(shù)字大小為1.4E-453.4E+38 , -1.4E-45-3.4E+38 。用二進(jìn)制的指數(shù)形式表示一個(gè)浮點(diǎn)數(shù)的格式,如:101*22 , 101*2-3double占用八個(gè)字節(jié),數(shù)字大小為4.9E-3241.7E+308, -4.9E-324-1.7E+308 。char占兩個(gè)字節(jié),數(shù)字大小為0216-1,是unicode編碼。字符的本來(lái)面目,我們?yōu)槭裁纯梢灾苯訉⒁粋€(gè)數(shù)字

9、賦給字符變量。boolean占一個(gè)字節(jié),其取值只有兩個(gè),true和false。JAVA變量字節(jié)大小及有效取值范圍 變量定義: java程序中每個(gè)變量都屬于特定的數(shù)據(jù)類(lèi)型, 在使用前必須對(duì)其聲明,聲明格式為: dataType variableName = variableValue; 變量聲明舉例: int age = 20; float price = 20.06f; double d1,d2,d3 = 0.456; int x = 1,y; y = x + 3;注意: 從本質(zhì)上講,變量其實(shí)是內(nèi)存中的一小塊內(nèi)存單元,可以通過(guò)其名字(變量名)來(lái)訪問(wèn)這塊區(qū)域,因此,每個(gè)變量使用前必須要先申請(qǐng)(聲

10、明),然后必須對(duì)其進(jìn)行賦值,才可以使用。 Java變量的定義JAVA變量的默認(rèn)值Data TypeDefault Value (for fields)byte0short0int0long0Lfloat0.0fdouble0.0dcharu0000String (or any object) nullbooleanfalse 按被聲明的位置劃分 局部變量 ::方法的參數(shù)列表中和方法內(nèi)部以及語(yǔ)句塊中聲明的變量。 成員變量: 方法外面且在類(lèi)的里面聲明的變量。 靜態(tài)成員變量:用static關(guān)鍵字修飾的成員變量。 注意: java語(yǔ)言中,類(lèi)外面(與類(lèi)對(duì)應(yīng)的大括號(hào)外面)不能有變量的聲明.按所屬的數(shù)據(jù)類(lèi)型

11、劃分 基本數(shù)據(jù)類(lèi)型變量 引用數(shù)據(jù)類(lèi)型變量Java變量的分類(lèi)初始化問(wèn)題: Java的成員變量在聲明時(shí),如果沒(méi)有指定初始化的值,系統(tǒng)會(huì)根據(jù)成員變量的數(shù)據(jù)類(lèi)型給出默認(rèn)的值,但局部變量在聲明時(shí)候沒(méi)有初始化,則系統(tǒng)不會(huì)給出默認(rèn)的初始化值,如果在使用前,沒(méi)有對(duì)其進(jìn)行初始華,在編譯時(shí)就會(huì)報(bào)錯(cuò)。請(qǐng)看下面的代碼: public void methodName() int height; int width = height + 5; /編譯出錯(cuò),height還沒(méi)有被初始化. Java的局部變量和成員變量分類(lèi):自動(dòng)類(lèi)型轉(zhuǎn)換(也叫隱式類(lèi)型轉(zhuǎn)換) 強(qiáng)制類(lèi)型轉(zhuǎn)換(也叫顯式類(lèi)型轉(zhuǎn)換) 類(lèi)型轉(zhuǎn)換的原理及什么時(shí)候要用強(qiáng)制類(lèi)型

12、轉(zhuǎn)換表達(dá)式的數(shù)據(jù)類(lèi)型自動(dòng)提升分析 System.out.println(a+1)與 System.out.println(“”+a+1) 的區(qū)別。Java數(shù)據(jù)類(lèi)型轉(zhuǎn)化 byteshortcharintlongfloatdouble變量 的作用域指變量起作用的范圍,說(shuō)明變量在什么部分可以被訪問(wèn);變量的生命周期是指變量在內(nèi)存中存在的周期,即什么時(shí)候分配空間,什么時(shí)候銷(xiāo)毀;變量要先定義,后使用,但也不是在變量定義后的語(yǔ)句一直都能使用前面定義的變量。我們可以用大括號(hào)將多個(gè)語(yǔ)句包起來(lái)形成一個(gè)復(fù)合語(yǔ)句,變量只能在定義它的復(fù)合語(yǔ)句中使用。JAVA變量的生命周期與作用域public class TestSco

13、pe public static void main(String args) int x = 12; int q = 96; / x和q都可用 int x = 3;/錯(cuò)誤的定義,Java中不允許有這種嵌套定義 System.out.println(x is +x); System.out.println(q is +q); q = x; /* 錯(cuò)誤的行,只有x可用, q 超出了作用域范圍 */ System.out.println(x is +x); JAVA變量的生命周期與作用域運(yùn)算符是一種特殊符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較,一般由一至三個(gè)字符組成 。運(yùn)算符共分以下幾種: 算術(shù)運(yùn)算符

14、賦值運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符移位運(yùn)算符java中的運(yùn)算符 算術(shù)運(yùn)算符 “+”除字符串相加功能外,還能把非字符串轉(zhuǎn)換成字符串 ,如: “x”+123;的結(jié)果是“x123” 。 如果對(duì)負(fù)數(shù)取模,可以把模數(shù)負(fù)號(hào)忽略不記,如:5%-2=1。但被模數(shù)是負(fù)數(shù)就另當(dāng)別論了。對(duì)于除號(hào)“/”,它的整數(shù)除和小數(shù)除是有區(qū)別的:整數(shù)之間做除法時(shí),只保留整數(shù)部分而舍棄小數(shù)部分。 int x=3510;x=x/1000*1000;實(shí)際運(yùn)行結(jié)果是3000 ,想想為什么? 算術(shù)運(yùn)算符的注意問(wèn)題賦值運(yùn)算符 注1:在JAVA里可以把賦值語(yǔ)句連在一起,如: x = y = z = 5 ; 在這個(gè)語(yǔ)句中,所有三個(gè)變量都得到同樣的值

15、5。注2 :x += 3等效于x = x + 3,等于*= ,-=,/=依此類(lèi)推。 比較運(yùn)算符 注1:比較運(yùn)算符的結(jié)果都是boolean型,也就是要么是true,要么是false。注2:比較運(yùn)算符“=”不能誤寫(xiě)成“=” ,切記!切記!邏輯運(yùn)算符 注1:邏輯運(yùn)算符用于對(duì)boolean型結(jié)果的表達(dá)式進(jìn)行運(yùn)算,運(yùn)算的結(jié)果都是boolean型 。注2:“&”和“&”的區(qū)別在于,如果使用前者連接,那么無(wú)論任何情況,“&”兩邊的表達(dá)式都會(huì)參與計(jì)算。如果使用后者連接,當(dāng)“&”的左邊為false,則將不會(huì)計(jì)算其右邊的表達(dá)式?!皘”和“|”的區(qū)別與“&”和“&”的區(qū)別一樣。 public class TestA

16、nd public static void main(String args) int x=0; int y=3; if(x!=0 & y=y/x) System.out.println(y = +y); 上面例子中,由于while語(yǔ)句的判斷條件中的第一個(gè)布爾表達(dá)式是不成立的,程序就不會(huì)判斷第二個(gè)布爾表達(dá)式的值,這就是“短路”。如果兩個(gè)表達(dá)式之間用“&”來(lái)連接,如果正好碰到上面所示的特殊情況,程序運(yùn)行時(shí)就會(huì)出錯(cuò) “&”和“&”的區(qū)別分析移位運(yùn)算符適用類(lèi)型有byte、short、char、int、long對(duì)低于int型的操作數(shù)將先自動(dòng)轉(zhuǎn)換為int型再移位。對(duì)于int型整數(shù)移位ab,系統(tǒng)先將b對(duì)3

17、2取模,得到的結(jié)果才是真正移位的位數(shù)。例如:a33和a1結(jié)果是一樣的,a32的結(jié)果還是a原來(lái)的數(shù)字。對(duì)于long型整數(shù)移位時(shí)ab ,則是先將移位位數(shù)b對(duì)64取模。移位不會(huì)改變變量本身的值。如a1;在一行語(yǔ)句中單獨(dú)存在,毫無(wú)意義 。x1的結(jié)果和x/2的結(jié)果是一樣的,x2和x*4的結(jié)果也是一樣的??傊粋€(gè)數(shù)左移n位,就是等于這個(gè)數(shù)乘以2的n次方,一個(gè)數(shù)右移n位,就是等于這個(gè)數(shù)除以2的n次方。請(qǐng)思考:如何用程序?qū)崿F(xiàn)求2的x次方。答案:y = 1 x; 移位運(yùn)算注意事項(xiàng)運(yùn)算符的優(yōu)先級(jí) 我們可以使用括號(hào)改變運(yùn)算賦的優(yōu)先級(jí),分析int a =2;int b = a + 3*a;語(yǔ)句的執(zhí)行過(guò)程 與int

18、a =2;int b =( a + 3)*a;語(yǔ)句的執(zhí)行過(guò)程的區(qū)別 。對(duì)于int a =2; int b= a + 3 * a+;這樣的語(yǔ)句,b最終等于多少呢?作者試驗(yàn)得到的結(jié)果是8。對(duì)于int a =2; int b= (a +)+ 3 * a;這樣的語(yǔ)句,b最終等于多少呢?如何避免多個(gè)運(yùn)算符帶來(lái)的問(wèn)題與其去思考其中的原因,我們還不如將上面的第二句改為幾條語(yǔ)句來(lái)實(shí)現(xiàn)我們想要的結(jié)果。不要在一行中編寫(xiě)太復(fù)雜的表達(dá)式,也就是不要在一行中進(jìn)行太多的運(yùn)算在一行中進(jìn)行太多的運(yùn)算并不能為你帶來(lái)什么好處,相反只能帶來(lái)壞處,它并不比改成幾條語(yǔ)句的運(yùn)行速度快,它除可讀行差外,還極容易出錯(cuò)。對(duì)于優(yōu)先級(jí)順序,讀者不

19、用刻意去記,有個(gè)印象就行如果你實(shí)在弄不清這些運(yùn)算先后關(guān)系的話,就用括號(hào)或是分成多條語(yǔ)句來(lái)完成你想要的功能,因?yàn)槔ㄌ?hào)的優(yōu)先級(jí)是最高的,這也是軟件編碼規(guī)范的一個(gè)要求。如何避免多個(gè)運(yùn)算符帶來(lái)的問(wèn)題表達(dá)式:表達(dá)式是運(yùn)算符和操作數(shù)的結(jié)合,它是任何一門(mén)編程語(yǔ)言的關(guān)鍵組成部分表達(dá)式允許程序員進(jìn)行數(shù)學(xué)計(jì)算、值的比較、邏輯操作以及在Java中進(jìn)行對(duì)象的操作。一些表達(dá)式的例子:語(yǔ)句:空語(yǔ)句:復(fù)合語(yǔ)句: 代碼塊:表達(dá)式和語(yǔ)句順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu) 顧名思義,順序結(jié)構(gòu)就是程序從上到下一行一行執(zhí)行的結(jié)構(gòu),中間沒(méi)有判斷和跳轉(zhuǎn),直到程序結(jié)束。 程序的流程控制 if (表達(dá)式) 語(yǔ)句; if (表達(dá)式) 語(yǔ)句1; else

20、 語(yǔ)句2; if (表達(dá)式1) 語(yǔ)句1;else if (表達(dá)式2) 語(yǔ)句2;else if (表達(dá)式2) 語(yǔ)句3; else 語(yǔ)句n;if語(yǔ)句的選擇結(jié)構(gòu) 每個(gè)語(yǔ)句可以是使用 組成的復(fù)合語(yǔ)句。條件表達(dá)式: 變量 布爾表達(dá)式?語(yǔ)句1:語(yǔ)句2; If語(yǔ)句還可以嵌套使用if (表達(dá)式1) if (表達(dá)式2) 語(yǔ)句1;else語(yǔ)句2; esleif (表達(dá)式2) 語(yǔ)句3;else語(yǔ)句4;嵌套時(shí)最好使用確定層次界限,舉例說(shuō)明。if語(yǔ)句的選擇結(jié)構(gòu) Switch (表達(dá)式)case 常量表達(dá)式1:語(yǔ)句1;break;case 常量表達(dá)式2:語(yǔ)句2;break;case 常量表達(dá)式n:語(yǔ)句n;break;de

21、fault: 語(yǔ)句n;default語(yǔ)句是可選的,它接受除上面接受值的其他值,通俗的講,就是誰(shuí)也不要的都?xì)w它。case后面可以跟多個(gè)語(yǔ)句,這些語(yǔ)句可以不用大括號(hào)括起來(lái) 。 switch語(yǔ)句判斷條件可接受int, byte, char, short型,不可以接受其他類(lèi)型。一旦碰到第一次case匹配,就會(huì)開(kāi)始順序執(zhí)行以后所有的程序代碼,而不管后面的case條件是否匹配,后面case條件下的代碼都會(huì)被執(zhí)行,直到碰到break語(yǔ)句為止。我們可以利用這個(gè)特點(diǎn)來(lái)用同一段語(yǔ)句處理多個(gè)case條件。switch語(yǔ)句的選擇結(jié)構(gòu) While (表達(dá)式) 語(yǔ)句;int x=1;while(x3) System.ou

22、t.println(x=+x); x+; 腳下留心:while表達(dá)式的括號(hào)后面一定不要加“;” while循環(huán)語(yǔ)句 do 語(yǔ)句 ; while (表達(dá)式);public class TestDopublic static void main(String args)int x=3;while(x=0)System.out.println(ok1);x+; int y=3; do System.out.println(ok2); y+; while(y=0);do-while循環(huán)語(yǔ)句編寫(xiě)一個(gè)程序,這個(gè)程序不斷地讀取從鍵盤(pán)上輸入的字符,直到讀到字符q時(shí),程序結(jié)束。提示:調(diào)用System.in.re

23、ad();可以讀取到一個(gè)從鍵盤(pán)上輸入字符對(duì)應(yīng)的整數(shù)。通過(guò)這個(gè)程序,你一定能體會(huì)到在什么樣的情況下,用do-while循環(huán)語(yǔ)句比while循環(huán)語(yǔ)句方便。do-while循環(huán)語(yǔ)句for(表達(dá)式1;表達(dá)式2 ;表達(dá)式3) 語(yǔ)句; for循環(huán)的三個(gè)表達(dá)式中的任意一個(gè)都可以省略,甚至是三個(gè)都可以省略,但是兩個(gè)“;”是不能省略的。如下面幾種寫(xiě)法是等價(jià)的:for(int x=1;x10;x+) System.out.println(x=+x); 等效于for循環(huán)語(yǔ)句 int x=1;for(;x10;x+) System.out.println(x=+x); 等效于int x=1;for(;x= 10)br

24、eak; System.out.println(x=+x); x+;for循環(huán)語(yǔ)句 break語(yǔ)句可以中止循環(huán)中的子語(yǔ)句和switch語(yǔ)句。一個(gè)無(wú)標(biāo)號(hào)的break語(yǔ)句會(huì)把控制傳給當(dāng)前(最內(nèi))循環(huán)(while,dofor或Switch)的下一條語(yǔ)句。如果有標(biāo)號(hào),控制會(huì)被傳遞給當(dāng)前方法中的帶有這一標(biāo)號(hào)的語(yǔ)句。如:st:while(true) while(true) break st; break語(yǔ)句 continue語(yǔ)句只能出現(xiàn)在循環(huán)語(yǔ)句(while,do,for)的子語(yǔ)句塊中,無(wú)標(biāo)號(hào)的continue語(yǔ)句的作用是跳過(guò)當(dāng)前循環(huán)的剩余語(yǔ)句塊,接著執(zhí)行下一次循環(huán)。 用continue語(yǔ)句的打印出 0到

25、10之間的所有奇數(shù)的程序例子。 for(int i=0;i10;i+) if(i%2=0) continue; System.out.println(i); continue語(yǔ)句 Java中的原始數(shù)據(jù)類(lèi)型與C語(yǔ)言中的基本數(shù)據(jù)類(lèi)型一樣,其變量都是在棧中分配空間;而除了8種原始數(shù)據(jù)類(lèi)型以外,其它的任何數(shù)據(jù)都不可以在棧中分配,只能到堆中開(kāi)辟空間,而在堆中分配的空間又只能通過(guò)指針訪問(wèn);通過(guò)指針訪問(wèn)堆內(nèi)存的方式,在Java中被稱(chēng)作引用數(shù)據(jù)類(lèi)型;可以認(rèn)為,Java中的引用就類(lèi)似于C語(yǔ)言中的指針,只是對(duì)指針進(jìn)行了一定程度上的包裝,避免了因直接操作指針而造成的數(shù)據(jù)意外損壞,從而導(dǎo)致程序錯(cuò)誤的情況。Java中的

26、內(nèi)存分配數(shù)組用于將相同類(lèi)型的數(shù)據(jù)存儲(chǔ)在連續(xù)的存儲(chǔ)單元中;可以通過(guò)指定數(shù)組的名稱(chēng)和長(zhǎng)度來(lái)聲明數(shù)組;一旦聲明數(shù)組的大小,就不能再修改;數(shù)組元素通過(guò)數(shù)組名和索引來(lái)訪問(wèn),索引從0開(kāi)始;數(shù)組可以是一維,也可以是多維。數(shù)組 在Java中,不允許將數(shù)組分配在棧內(nèi)存中,只能分配在堆內(nèi)存中; Java中沒(méi)有類(lèi)似于malloc、calloc、realloc和free等函數(shù),取而代之的是new關(guān)鍵字; new是Java中內(nèi)置的操作符; new操作符用來(lái)從堆中分配指定類(lèi)型的內(nèi)存空間,并返回相應(yīng)類(lèi)型的引用,其作用類(lèi)似于malloc函數(shù)。new關(guān)鍵字Java中聲明數(shù)組的幾種方式/僅聲明數(shù)組的引用,但沒(méi)有分配內(nèi)存空間flo

27、at fAry;/聲明數(shù)組的同時(shí),根據(jù)指定的長(zhǎng)度分配內(nèi)存,但數(shù)組中沒(méi)有值char chAry = new char10;/聲明數(shù)組并分配內(nèi)存,同時(shí)將其初始化int ary1 = new int1, 2, 3, 4, 5;/與前一種方式相同,僅僅只是語(yǔ)法相對(duì)簡(jiǎn)略int ary2 = 1, 2, 3, 4, 5;C語(yǔ)言中,不可以將數(shù)組直接賦值給另一個(gè)數(shù)組;在Java中,語(yǔ)法上允許這樣做,但實(shí)際得到的效果是兩個(gè)數(shù)組引用指向同一塊內(nèi)存。int ary1 = 2, 4, 6, 8, 10;int ary2;ary2 = ary1; 數(shù)組之間賦值108642堆棧ary1ary2在Java中,程序員可以不再

28、關(guān)注數(shù)組的長(zhǎng)度,數(shù)組自帶的length屬性將負(fù)責(zé)保管數(shù)組的長(zhǎng)度; C語(yǔ)言不檢查數(shù)組的邊界,數(shù)組索引完全由程序員掌握; Java對(duì)數(shù)組下標(biāo)越界情況強(qiáng)加約束;如果試圖訪問(wèn)不在有效索引以?xún)?nèi)的元素,將會(huì)引發(fā)運(yùn)行錯(cuò)誤。關(guān)于數(shù)組長(zhǎng)度數(shù)組賦值示例public class ArrayDemo public static void main(String args) int ary1 = 2, 4, 6, 8, 10; /聲明并初始化數(shù)組1 int ary2; /聲明數(shù)組2 ary2 = ary1; /將數(shù)組1賦值給數(shù)組2 ary23 = 1024; /通過(guò)數(shù)組2修改其中一個(gè)元素的值 /打印出數(shù)組1中的元素 S

29、ystem.out.println(數(shù)組1中的元素:); for (int i = 0; i ary1.length; i+) System.out.println(ary1i); /打印出數(shù)組2中的元素 System.out.println(數(shù)組2中的元素:); for (int i = 0; i ary2.length; i+) System.out.println(ary2i); 如何理解多維數(shù)組,類(lèi)似我們的棋盤(pán)。 java 中并沒(méi)有真正的多維數(shù)組,只有數(shù)組的數(shù)組, Java中多維數(shù)組不一定是規(guī)則矩陣形式。多維數(shù)組 多維數(shù)組中元素的引用方式,如:x12。規(guī)則矩陣數(shù)組可以在一條語(yǔ)句中產(chǎn)生,

30、如:int xx=new int23; 多維數(shù)組的靜態(tài)初始化 ,如: int xx=3,2,7,1,5,6; 多維數(shù)組定義一個(gè)多維數(shù)組int xx;xx=new int3; xx0=new int3;xx1=new int2;多維數(shù)組 使用循環(huán)作數(shù)組復(fù)制int arr1 = 1, 2, 3, 4, 5;int arr2 = new int5;for(int i = 0; i arr1.length; i+) arr2i = arr1i;for(int i = 0; i arr2.length; i+) System.out.print(arr2i + );System.out.println(

31、);數(shù)組復(fù)制不可用=比較兩個(gè)數(shù)組的元素值是否相等int arr1 = 1, 2, 3, 4, 5; int arr2 = 1, 2, 3, 4, 5; int tmp = arr1; System.out.println(arr1 = tmp); System.out.println(arr2 = tmp);數(shù)組比較foreach與數(shù)組加強(qiáng)的for循環(huán)(Enhanced forLoop) for(type element : array) System.out.println(element). J2SE 5.0之前 int arr = 1, 2, 3, 4, 5; for(int i = 0

32、; i arr.length; i+) System.out.println(arri);在J2SE5.0之后 int arr = 1, 2, 3, 4, 5; for(int element : arr) System.out.println(element);foreach與數(shù)組如果是對(duì)象的話二維數(shù)組String names = caterpillar, momor, bush;for(String name : names) System.out.println(name);int arr = 1, 2, 3,4, 5, 6,7, 8, 9;for(int row : arr) for(

33、int element : row) System.out.println(element); 函數(shù)(子程序)的概念與作用。定義一個(gè)函數(shù)的格式:返回值類(lèi)型 函數(shù)名(參數(shù)類(lèi)型 形式參數(shù)1,參數(shù)類(lèi)型 形式參數(shù)2,.) 程序代碼 return 返回值;其中:形式參數(shù):在方法被調(diào)用時(shí)用于接收外部傳入的數(shù)據(jù)的變量。參數(shù)類(lèi)型:就是該形式參數(shù)的數(shù)據(jù)類(lèi)型。返回值:方法在執(zhí)行完畢后返還給調(diào)用它的程序的數(shù)據(jù)。返回值類(lèi)型:函數(shù)要返回的結(jié)果的數(shù)據(jù)類(lèi)型。如沒(méi)有返回值,則為void。實(shí)參:調(diào)用函數(shù)時(shí)實(shí)際傳給函數(shù)形式參數(shù)的數(shù)據(jù)。函數(shù)java中函數(shù)參數(shù)的傳遞和C語(yǔ)言中一樣,都是值傳遞。class testpass public static void swap(int x,int y) int a=x; x=y;y=a; System.out.println(“x=”+x+”y=”+y); public static void man() int a=2,b=3; swap(a,b); System.out.pri

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論