項目3 java語言基礎(chǔ)_第1頁
項目3 java語言基礎(chǔ)_第2頁
項目3 java語言基礎(chǔ)_第3頁
項目3 java語言基礎(chǔ)_第4頁
項目3 java語言基礎(chǔ)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

Java程序設(shè)計專業(yè)核心課程

精品課程1教學(xué)計劃ORJECT了解Java程序的基本結(jié)構(gòu)。了解Java中的標(biāo)識符和關(guān)鍵字。了解Java語言中的基本數(shù)據(jù)類型。掌握J(rèn)ava語言中的常量與變量。掌握J(rèn)ava語言中運算符的使用方法。掌握J(rèn)ava語言中數(shù)據(jù)類型的轉(zhuǎn)換。1精品課程23.1Java程序的基本結(jié)構(gòu)Java語言是面向?qū)ο蟮某绦蛟O(shè)計語言,Java程序的基本組成單元是類,類體中又包括屬性與方法兩部分(本書將在后續(xù)章節(jié)中逐一進(jìn)行介紹)。每一個應(yīng)用程序都必須包含一個main()方法,含有main()方法的類稱為主類。要學(xué)習(xí)Java程序,首先應(yīng)該了解程序的基本結(jié)構(gòu),這樣有利于更進(jìn)一步學(xué)習(xí)Java語言。一個Java程序的基本結(jié)構(gòu)大體可以分為包、類、main()主方法、標(biāo)識符、關(guān)鍵字、語句和注釋等,如圖3-1所示。圖3-1Java程序的基本結(jié)構(gòu)3精品課程第1條語句“packageMr;”定義了Java程序中類所在的包是Mr,其中Mr是一個標(biāo)識符,由程序員自己定義;package是定義包的關(guān)鍵字,在Java程序中要定義包就必須使用package關(guān)鍵字。在Java語言中,標(biāo)識符和關(guān)鍵字是區(qū)分大小寫的,否則將導(dǎo)致程序無法正常執(zhí)行,例如,如果將關(guān)鍵字package寫成Package,程序就會因出錯而無法正常執(zhí)行。另外,每條語句必須以分號結(jié)尾。第2條語句“publicclassExample”是創(chuàng)建類的語句,其中,public是Java程序的關(guān)鍵字,這里用于修飾類;class是用于創(chuàng)建類的關(guān)鍵字,class后面的Example就是所創(chuàng)建類的名稱,該類名由程序員自己定義。第3條語句“staticintONE=1;”定義了類的成員變量,其中,static是Java程序的關(guān)鍵字,這里用于修飾成員變量;int也是一個關(guān)鍵字,是Java程序中的整數(shù)數(shù)據(jù)類型,用于定義常量和變量,這里定義的是類的成員變量;ONE是一個標(biāo)識符,是該類的成員變量,其名稱由程序員自己定義,該成員變量的數(shù)據(jù)類型是整數(shù)類型。第4條語句“publicstaticvoidmain(String[]args)”是類的主方法,是Java應(yīng)用程序的入口點,

Java程序就是從該方法開始執(zhí)行的。其中,main是主方法的名稱,程序員不可以更改;public是Java程序的關(guān)鍵字,這里用于修飾主方法;static是Java程序的關(guān)鍵字,這里也用于修飾主方法;void也是一個關(guān)鍵字,用于修飾方法,表示方法沒有返回值;String也是一個類,用于創(chuàng)建字符串對象,這里用于修飾主方法的形參。在String后面跟上一對方括號“[”和“]”,表示主方法的形參是一個字符串?dāng)?shù)組;args是一個標(biāo)識符,是主方法的形參數(shù)組,其數(shù)據(jù)類型是String類型。在Java語言中,主方法的寫法是固定的,除了主方法的形參“String[]args”可以修改為“stringargs[]”外,不可以改變第4條語句中的其他任何部分,否則Java程序都將無法運行。第5條語句“Stringvar="Hello";”即在主方法內(nèi)定義了一個局部變量。其中,String是一個類,用于創(chuàng)建字符串對象,這里創(chuàng)建了一個局部變量;var是局部變量的名稱,是程序自己定義的一個標(biāo)識符;"Hello"是局部變量var的值,是一個字符串常量;等號“=”是賦值運算符,用于將等號右邊的字符串常量賦值給等號左邊的變量var,這樣變量var的值就是Hello了。在Java程序中,除了字符串中常用的標(biāo)點符號外,代碼中的所有標(biāo)點符號必須是半角的或在英文輸入法下輸入(如逗號、分號、雙引號等),否則程序會出錯,這也是初學(xué)者容易犯的錯誤。第6條語句“System.out.println(ONE);”是一個輸出語句,可以在命令行或控制臺中輸出信息?!癝ystem.out.println();”是輸出語句的固定寫法,其中,System是個系統(tǒng)類的名稱,其第一個字母必須大寫,out是System類提供的一個標(biāo)準(zhǔn)輸出流,println()是標(biāo)準(zhǔn)輸出流out提供的方法,用于輸出信息;println()方法內(nèi)部的ONE是要輸出的內(nèi)容,這里的ONE是類的一個成員變量,其值是1,所以執(zhí)行該語句將輸出1。最后一條語句“System.out.println(var);”是一個輸出語句,含義同第6條語句,這里的var是主方法內(nèi)定義的一個局部變量,其值是"Hello",所以執(zhí)行該語句將輸出Hello。4精品課程5精品課程3.2標(biāo)識符和關(guān)鍵字標(biāo)識符是Java程序重要的組成部分,在程序中必須使用。關(guān)鍵字是Java中一些具體有特殊意義的字符,不可以使用關(guān)鍵字對標(biāo)識符進(jìn)行命名。3.2.1?標(biāo)識符標(biāo)識符是Java程序中必須使用的,但也不是隨便使用的,有一定的規(guī)則。本小節(jié)將介紹什么是標(biāo)識符和標(biāo)識符的命名規(guī)則。1.標(biāo)識符的概念標(biāo)識符可以簡單地理解為一個名稱,用來標(biāo)識類名、變量名、方法名、數(shù)組名、文件名的有效字符序列.【例3.1】定義變量i并賦值為100。inti=100;System.out.println(i);其中,變量名i就是標(biāo)識符,由程序員命名,但并不是隨便取的,也有一定的規(guī)則。下面將介紹標(biāo)識符的命名規(guī)則。2.標(biāo)識符的命名規(guī)則標(biāo)識符就是一個名稱,對于所要表示的內(nèi)容,用什么名稱并不重要,只要通過標(biāo)識符能夠找到所寫內(nèi)容即可。就好比人的名字,你叫什么名字并不重要,在別人叫這個名字時知道是你就可以了。標(biāo)識符雖然可以任意取名,但是也要遵循以下規(guī)則。(1)Java語言的標(biāo)識符由字母、數(shù)字、下畫線和美元符號組成,且第一個字符不能為數(shù)字。非法的標(biāo)識符如7word、5fox等;合法的標(biāo)識符如tb_user、_u88等.(2)Java語言使用Unicode標(biāo)準(zhǔn)字符集,最多可以識別65535個字符。因此,Java語言中的字母可以是Unicode字符集中的任何字符,包括拉丁字母、漢字、日文和其他許多語言中的字符,合法的標(biāo)識符如價格、User等。6精品課程(3)標(biāo)識符不能是Java的關(guān)鍵字和保留字。非法的標(biāo)識符如this、goto等。(4)在Java語言中標(biāo)識符是區(qū)分大小寫的,如果兩個標(biāo)識符的字母相同但是大小寫不同,就是不同的標(biāo)識符。good和Good就是兩個不同的標(biāo)識符。在程序開發(fā)中,雖然可以使用漢字、日文等作為標(biāo)識符,但為了避免出現(xiàn)錯誤,盡量不要使用,最好連下畫線和數(shù)字也不要使用,而只用英文進(jìn)行命名,且首字母用大寫字母書寫。3.2.2?關(guān)鍵字關(guān)鍵字是Java語言中已經(jīng)被賦予特定含義的一些單詞,不可以把這些字作為標(biāo)識符來使用。Java中的關(guān)鍵字如表3-1所示。表3-1Java關(guān)鍵字序號關(guān)鍵字序號關(guān)鍵字序號關(guān)鍵字序號關(guān)鍵字1private13static25if37package2protected14const26instanceof38boolean3public15synchronized27return39byte4default16transient28switch40char5abstract17null29while41double6class18break30assert42float7extends19case31catch43int8final20continue32finally44long9implements21goto33throw45short10interface22do34throws46super11native23else35try47this12new24for36import48void在命名標(biāo)識符時,雖然const和goto不是Java的關(guān)鍵字,但也不可以使用,這兩個詞可能會在以后的升級版本中使用。3.3基本數(shù)據(jù)類型在Java中有8種基本數(shù)據(jù)類型,其中,有6種是數(shù)值類型,另外兩種分別是字符類型和布爾類型,而6種數(shù)值類型中有4種是整數(shù)類型,另外兩種是浮點類型。3.3.1?整數(shù)類型整數(shù)類型用來存儲整數(shù)數(shù)值,即沒有小數(shù)部分的數(shù)值,可以是正數(shù)、負(fù)數(shù),也可以是零。根據(jù)所占內(nèi)存的大小不同,又可分為byte、short、int和long四種類型,它們所占的內(nèi)存和取值范圍如表3-2所示。表3-2整數(shù)類型數(shù)據(jù)類型內(nèi)存空間(8位=1字節(jié))取值范圍byte8位(1個字節(jié))-128~127short16位(2個字節(jié))-32768~32767int32位(4個字節(jié))-2147483648~2147483647long64位(8個字節(jié))-9223372036854775808~92233720368547758071.byte型使用byte關(guān)鍵字來定義byte型變量,可以一次定義多個變量并對其進(jìn)行賦值,也可以不進(jìn)行賦值,byte型是整型中所分配的內(nèi)存空間最少的,只分配1個字節(jié);取值范圍也是最小的,為-128~127,在使用時一定要注意,以免數(shù)據(jù)溢出產(chǎn)生錯誤?!纠?.2】定義byte型變量。Bytex=48,y=-108,z;//定義byte型變量x、y、z,并賦初值給x、y7精品課程8精品課程2.short型short型即短整型,使用short關(guān)鍵字來定義short型變量,可以一次定義多個變量并對其進(jìn)行賦值,也可以不進(jìn)行賦值。系統(tǒng)給short型變量分配兩個字節(jié)的內(nèi)存,取值范圍也比byte型大了很多,為-32768~32767,雖然取值范圍變大,但還是要注意數(shù)據(jù)溢出。3.int型int型即整型,使用int關(guān)鍵字來定義int型變量,可以一次定義多個變量并對其進(jìn)行賦值,也可以不進(jìn)行賦值。int型變量的取值范圍很大,為-2147483648~2147483647,一般情況下足夠使用,所以是整型變量中應(yīng)用最為廣泛的?!纠?.3】定義int型變量。intx=450,y=-462,z;//定義int型變量x、y、z;并賦初值給x、y4.long型long型即長整型,使用long關(guān)鍵字來定義long型變量,可以一次定義多個變量并進(jìn)行賦值,也可以不進(jìn)行賦值。而在對long型變量賦值時結(jié)尾必須加上“L”或者“l(fā)”,否則將不被認(rèn)為是long型。當(dāng)數(shù)值過大,超出int型范圍時就使用long型,系統(tǒng)分配給long型變量8個字節(jié),取值范圍則更大,為-9223372036854775808~92233-72036854775807?!纠?.4】定義long型變量。longx=4556824L,y=-4624477161,z;//定義long型變量x、y、z,并賦初值給x、y。在定義long型變量時,最好在結(jié)尾處加“L”,因為“I”非常容易與數(shù)字“1”弄混?!纠?.5】在項目中創(chuàng)建類Number,在主方法中創(chuàng)建不同的整數(shù)類型變量,并將這些變量相加,將結(jié)果輸出。publicclassNumber{//創(chuàng)建類publicstaticvoidmain(String[]args){//主方法bytemybyte=124;//聲明byte型變量并賦值shortmyshort=32564;//聲明short型變量并賦值intmyint=45784612;//聲明int型變量并賦值longmylong=46789451L;//聲明long型變量并賦值longresult=mybyte+myshort+myint+mylong;//獲得各數(shù)相加后的結(jié)果System.out.printin("四種類型相加的結(jié)果為:"+result);//將以上變量相加的結(jié)果輸出}}其運行結(jié)果如下:四種類型相加的結(jié)果為:92606751上面的4種整數(shù)類型在Java程序中有3種表示形式,分別為十進(jìn)制表示法、八進(jìn)制表示法和十六進(jìn)制表示法。(1)十進(jìn)制表示法。十進(jìn)制的表現(xiàn)形式大家都很熟悉,即逢十進(jìn)一,每位上的數(shù)字最大是9,如120、0、-127都是十進(jìn)制數(shù)。(2)八進(jìn)制表示法。八進(jìn)制即逢八進(jìn)一,每位上的數(shù)字最大是7,且必須以0開頭。例如,0123(轉(zhuǎn)換成十進(jìn)制數(shù)為83)、-0123(轉(zhuǎn)換成十進(jìn)制數(shù)為-83)都是八進(jìn)制數(shù)。(3)十六進(jìn)制表示法。中國古代使用的就是十六進(jìn)制數(shù),所謂半斤八兩就是從此而來,即逢十六進(jìn)一,每位上最大數(shù)字是f(15),且必須以0X或0x開頭。例如,0x25(轉(zhuǎn)換成十進(jìn)制數(shù)為37)、0Xb01e(轉(zhuǎn)換成十進(jìn)制數(shù)為45086)都是十六進(jìn)制數(shù)。9精品課程10精品課程3.3.2?浮點類型浮點類型表示有小數(shù)部分的數(shù)字。在Java語言中,浮點類型分為單精度浮點類型(float)和雙精度浮點類型(double),它們具有不同的取值范圍,如表3-3所示。表3-3浮點類型數(shù)據(jù)類型內(nèi)存空間(8位=1字節(jié))取值范圍float32位1.4E-45~3.4028235E-38double64位4.9E-324~1.7976931348623157E-3081.float型float型即單精度浮點型,使用float關(guān)鍵字來定義float型變量,可以一次定義多個變量并對其進(jìn)行賦值,也可以不進(jìn)行賦值。在對float型變量進(jìn)行賦值時,在結(jié)尾必須添加“F”或者“f”,如果不加,自動將其定義為double型變量。float型變量的取值范圍為1.4E-45~3.4028235E-38?!纠?.6】定義float型變量。floatx=12.521F,y=-5.264f,z;//定義float型變量x、y、z,并賦初值給x、y2.double型double型即雙精度浮點型,使用double關(guān)鍵字來定義double型變量,可以一次定義多個變量并對其進(jìn)行賦值,也可以不進(jìn)行賦值。在為double型變量賦值時,可以使用后綴“D”或“d”明確表明這是double類型數(shù)據(jù),11精品課程但加不加并沒有硬性規(guī)定,可以加也可以不加。double型變量的取值范圍為4.9E-324~1.7976931348623157E-308。【例3.7】定義double型變量。double=12.521D,y=-5.264d,z=5.115,p//定義double型變量x、y、z、p,并賦初值給x、y、z【例3.8】在項目中創(chuàng)建SumNumber類,在類的主方法中聲明字符型變量,然后進(jìn)行加法運算,并將運行結(jié)果輸出。publicclassSumNumber{//創(chuàng)建類publicstaticvoidmain(String[]args){//主方法floatf1=13.23f;//定義float型變量doubled1=4562.12d;//定義double型變量doubled2=45678.1564;//定義double型變量doubleresult=f1+d1+d2;//獲得各數(shù)相加后的結(jié)果System.out.printin("浮點型相加得到結(jié)果為:"+result");//將以上變量相加的結(jié)果輸出}}其運行結(jié)果如下:浮點型相加得到結(jié)果為:50253.50639954224運行結(jié)果中輸出了一個16位數(shù),這是因為float型變量是8位的,在轉(zhuǎn)換成16位時自動在后面補了一些數(shù),這將在后面數(shù)據(jù)類型轉(zhuǎn)換中詳細(xì)介紹。3.3.3?字符類型char型即字符類型,使用char關(guān)鍵字進(jìn)行聲明,用于存儲單個字符,系統(tǒng)分配兩個字節(jié)的內(nèi)存空間。在定義字符型變量時,要用單引號括起來。例如,'s'表示一個字符,且單引號中只能有一個字符,多了就不是字符類型了,而是字符串類型,需要用雙引號進(jìn)行聲明?!纠?.9】聲明char型變量。charx='a';由于字符a在Unicode表中的排序位置是97,因此允許將上面的語句寫成。charx=97;與C、C++語言一樣,Java語言也可以把字符作為整數(shù)對待。由于Unicode編碼采用無符號編碼,可以存儲65536個字符(0x0000~0Xffff),所以Java中的字符幾乎可以處理所有國家的語言文字。若想得到一個0~65536的數(shù)所代表的Unicode表中相應(yīng)位置上的字符,也必須使用char型顯式轉(zhuǎn)換?!纠?.10】在項目中創(chuàng)建類Export,實現(xiàn)將Unicode表中某些位置上的字符,以及這些字符在Unicode表中的位置輸出在控制臺上。publicclassExport{//定義類publicstaticvoidmain(String[]args){//主方法inti='d';//定義整型變量charc=97;//定義char型變量System.out.println("字符d的Unicode碼是:"+i);System.out.println("Unicode碼97代表的字符是:"+c);}}12精品課程命令說明快捷鍵重命名重命名所選擇的

Java

元素Alt+Shift+R移動移動所選擇的

Java

元素Alt+Shift+V抽取方法創(chuàng)建一個包含當(dāng)前所選語句或表達(dá)式的新方法,并相關(guān)的引用Alt+Shift+M抽取局部變量創(chuàng)建為當(dāng)前所選表達(dá)式指定的新變量,并將選擇替換為對新變量的引用Alt+Shift+L命令說明快捷鍵重命名重命名所選擇的

Java

元素Alt+Shift+R移動移動所選擇的

Java

元素Alt+Shift+V抽取方法創(chuàng)建一個包含當(dāng)前所選語句或表達(dá)式的新方法,并相關(guān)的引用Alt+Shift+M抽取局部變量創(chuàng)建為當(dāng)前所選表達(dá)式指定的新變量,并將選擇替換為對新變量的引用Alt+Shift+L命令說明快捷鍵重命名重命名所選擇的

Java

元素Alt+Shift+R移動移動所選擇的

Java

元素Alt+Shift+V抽取方法創(chuàng)建一個包含當(dāng)前所選語句或表達(dá)式的新方法,并相關(guān)的引用Alt+Shift+M抽取局部變量創(chuàng)建為當(dāng)前所選表達(dá)式指定的新變量,并將選擇替換為對新變量的引用Alt+Shift+L命令說明快捷鍵重命名重命名所選擇的

Java

元素Alt+Shift+R移動移動所選擇的

Java

元素Alt+Shift+V抽取方法創(chuàng)建一個包含當(dāng)前所選語句或表達(dá)式的新方法,并相關(guān)的引用Alt+Shift+M抽取局部變量創(chuàng)建為當(dāng)前所選表達(dá)式指定的新變量,并將選擇替換為對新變量的引用Alt+Shift+L

14精品課程其運行結(jié)果如下:字符d的Unicode碼是:100Unicode碼97代表的字符是:a在字符類型中有一種特殊的字符,以反斜線“\”開頭,后面跟一個或多個字符,具有特定的含義,不同于字符原有的意義,叫作轉(zhuǎn)義字符。例如,“\n”就是一個轉(zhuǎn)義字符,意思是“回車換行”。Java中的轉(zhuǎn)義字符如表3-4所示。表3-4轉(zhuǎn)義字符轉(zhuǎn)義字符含義\dd1~3位八進(jìn)制數(shù)所表示的字符,如\456\dxxxx4位十六進(jìn)制數(shù)所表示的字符,如\0052\'單引號字符\\反斜杠字符\t垂直制表符,將光標(biāo)移到下一個制表符的位置\r回車\n換行\(zhòng)b退格\f換頁轉(zhuǎn)義字符本身也是字符,所以將轉(zhuǎn)義字符賦值給字符變量時,與其他字符常量值一樣,需要使用單引號。【例3.11】在項目中創(chuàng)建類Gess,在類的主方法中使用轉(zhuǎn)義字符定義字符型變量反斜杠和五角星,并在控制臺中將轉(zhuǎn)義字符輸出。publicclassGess{//定義類publicstaticvoidmain(String[]args){//主方法charchar1="\\";//將轉(zhuǎn)義字符"\\"賦值給變量char1charchar2="\u2605";//將轉(zhuǎn)義字符"\u2605"賦值給變量char2System.outprintln("輸出反斜杠:"+char1);//輸出結(jié)果\System.out.println("輸出五角星:"+char2);//輸出結(jié)果★}}其運行結(jié)果如下:輸出反斜杠:\輸出五角星:★3.3.4?布爾類型布爾類型又稱為邏輯類型,只有true和false兩個值,分別代表布爾邏輯中的“真”和“假”。使用boolean關(guān)鍵字聲明布爾類型變量,通常用在流程控制中作為判斷條件。【例3.12】聲明boolean型變量。booleanb1=true,b2=false,b3;//定義布爾型變量b1、b2、b3,并給b1、b2賦初值3.4變量與常量在程序執(zhí)行過程中,值不能改變的量稱為常量,值能改變的量稱為變量。變量與常量的聲明都必須使用合法的標(biāo)識符,所有變量與常量只有在聲明之后才能使用。3.4.1?聲明變量在程序設(shè)計中,變量的使用是一個十分重要的環(huán)節(jié)。定義一個變量,就是要告訴編譯器(Compiler)這個變量屬于哪一種數(shù)據(jù)類型,這樣編譯器才知道需要配置多少空間,以及能存放什么樣的數(shù)據(jù)。變量都有一個變量名,變量名必須是合法的標(biāo)識符,內(nèi)存空間內(nèi)的值就是變量值。在聲明變量時可以不給予賦值,也可以直接賦予初值?!纠?.13】聲明變量。intage;//聲明int型變量charchar1="r"http://聲明char型變量并賦值以上程序代碼的內(nèi)存狀態(tài)解析:系統(tǒng)的內(nèi)存可大約分為3個區(qū)域,即系統(tǒng)區(qū)(OS)、程序區(qū)(Program)和數(shù)據(jù)區(qū)(Data)。當(dāng)程序執(zhí)行時,程序代碼會加載到內(nèi)存中的程序區(qū),數(shù)據(jù)暫時存儲在數(shù)據(jù)區(qū)中。變量雖然是由程序員所命名的,但是變量的命名并不是隨意的,需要遵循一定的規(guī)則。Java中變量的命名規(guī)則如下。(1)變量名必須是一個有效的標(biāo)識符。變量名必須使用Java語言中合法的標(biāo)識符,即由字母、數(shù)字和下畫線組成,且首字母不能是數(shù)字,還不可以使用Java中的關(guān)鍵字。(2)變量名不能重復(fù)。如果兩個變量具有相同的變量名,系統(tǒng)在對其進(jìn)行使用時就不知道調(diào)用哪個變量,運行結(jié)果就會出現(xiàn)錯誤。(3)應(yīng)選擇有意義的單詞作為變量名。在為變量命名時,最好能通過變量名看出變量的內(nèi)容,這樣既方便讀者對程序的理解,增加可讀性;又方便程序的維護(hù),減輕程序維護(hù)人員的工作負(fù)擔(dān)?!纠?.14】在項目中創(chuàng)建類Gess,聲明整型變量i并賦予初值10,之后再將100賦予i,最后將i的值輸出。publicclassGess{//定義類publicstaticvoidmain(String[]args){//主方法inti=10;//定義變量i,并賦予初值10System.out.println("i的初值是:"+i);//輸出i的值i=100;//將100賦予iSystem.out.println("i現(xiàn)在的值是:"+i);//輸出i的值}}其運行結(jié)果如下:i的初值是:10i現(xiàn)在的值是:1003.4.2?聲明常量在程序運行過程中一直不會改變的量稱為常量(constant),通常又稱為“final變量”。常量在整個程序運行過程中只能賦值一次。在為所有對象共享值時,常量是非常有用的。在Java語言中聲明一個常量,除了要指定數(shù)據(jù)類型外,還需要通過final關(guān)鍵字進(jìn)行聲明。聲明常量的標(biāo)準(zhǔn)語法格式如下。final數(shù)據(jù)類型常量名稱[=值]常量名稱通常使用大寫字母,但這并不是必需的,很多Java程序員使用大寫字母表示常量,常常是為了清楚地表明正在使用常量?!纠?.15】聲明常量。finaldoublePI=3.1415926F;//聲明double型常量PI并賦值finalbooleanBOOL=true;//聲明double型常量BOOL并賦值如果定義的常量屬于“成員變量”,則必須在定義時就賦予初值,否則將會在編譯時出現(xiàn)錯誤“成員變量”將在3.4.3小節(jié)中講解。【例3.16】在項目中創(chuàng)建類Part,在類體中創(chuàng)建變量age與常量PI。在主方法中分別給變量和常量賦值,通過輸出信息可測試變量和常量的有效范圍。publicclassPart{//新建類PartstaticfinaldoublePI=3.14;//聲明常量PIstaticintage=23;//聲明int型變量age并進(jìn)行賦值publicstaticvoidmain(String[]args){//主方法finalintnumber;//聲明int型常量numbernumber=1235;//對常量進(jìn)行賦值age=22;//再次對變量進(jìn)行賦值System.out.println("常量PI的值為:"+PI);//將PI的值輸出System.out.printIn("賦值后number的值為:"+number);//將number的值輸出System.out.printin("int型變量age的值為:"+age);//將age的值輸出}}其運行結(jié)果如下:常量PI的值為:3.14賦值后number的值為:1235int型變量age的值為:223.4.3?變量的有效范圍變量的有效范圍是指程序代碼能夠訪問該變量的區(qū)域,若超出變量所在區(qū)域訪問變量,則編譯時會出現(xiàn)錯誤。在程序中,一般會根據(jù)變量能夠訪問的區(qū)域?qū)⒆兞糠譃椤俺蓡T變量”和“局部變量”。1.成員變量在類體中定義的變量被稱為成員變量,成員變量在整個類中都有效。類的成員變量又可分為靜態(tài)變量和實例變量兩種?!纠?.17】聲明靜態(tài)變量和實例變量。classvar{//定義實例變量intx=45;//定義靜態(tài)變量staticinty=90;}其中,x是實例變量、y為靜態(tài)變量(又稱為類變量)。如果在成員變量的類型前面加上關(guān)鍵字static,這樣的成員變量稱為靜態(tài)變量。靜態(tài)變量的有效范圍可以跨類,甚至可達(dá)到整個應(yīng)用程序之內(nèi)。對于靜態(tài)變量,除了能在定義它的類內(nèi)存取,還能直接以“類名.靜態(tài)變量”的方式在其他類內(nèi)使用.2.局部變量在類的方法體中定義的變量(方法內(nèi)部定義,“{”與“}”之間的代碼中聲明的變量)稱之為局部變量。局部變量只在當(dāng)前代碼塊中有效,通俗而言,就是在其所定義的大括號內(nèi)有效,超出這個大括號就無效了,在其他類體中不能調(diào)用該變量。局部變量的生命周期取決于方法,當(dāng)方法被調(diào)用時,Java虛擬機為方法中的局部變量分配內(nèi)存空間,當(dāng)該方法的調(diào)用結(jié)束后,則會釋放方法中局部變量占用的內(nèi)存空間,局部變量也隨即銷毀。【例3.18】在項目中創(chuàng)建類Val,并分別定義名稱相同的局部變量與成員變量,最后在控制臺中輸出變量,觀察輸出的結(jié)果。publicclassVal{//新建類staticinttimes=3;//定義成員變量timespublicstaticvoidmain(String[]args){//主方法inttimes=4;//定義局部變量timesSystem.outpintln("times的值為:"+times);//將times的值輸出System.out.pintln("times的值為:"+Val.times);//輸出靜態(tài)變量}}其運行結(jié)果如下:times的值為:4times的值為:3局部變量可與成員變量的名字相同,此時成員變量將被隱藏,即這個成員變量在此方法中暫時失效。如果想要調(diào)用成員變量,需要使用“類名.靜態(tài)變量”調(diào)用。成員變量和局部變量都有各自的有效范圍,成員變量在整個類體中都有效,而局部變量只在方法體中有效。3.5運算符運算符是一些特殊的符號,主要用于數(shù)學(xué)函數(shù)、一些類型的賦值語句和邏輯語句的比較。Java中提供了豐富的運算符,如賦值運算符、算術(shù)運算符、比較運算符,本節(jié)將向讀者介紹這些運算符。3.5.1?賦值運算符賦值運算符即為“=”,是一個二元運算符(即對兩個操作數(shù)進(jìn)行處理),其功能是將右邊操作數(shù)所含的值賦值給左邊的操作數(shù)。其語法格式如下:變量類型變量名=所賦的值;左邊必須是一個變量,而右邊所賦的值可以是任何數(shù)值或表達(dá)式,包括變量(如a、number)、常量(如123、'book')或有效的表達(dá)式(如45*12)?!纠?.19】使用賦值運算符為變量賦值。inta=10;//聲明int型變量aintb5;//聲明int型變量bintc=a+b+2;//將變量a、b和2進(jìn)行運算后的結(jié)果賦值給c遵循賦值運算符的運算規(guī)則,可知系統(tǒng)將先計算a+b+2的值,結(jié)果為17,然后將17賦值給變量c,因此運算后c=17。【例3.20】在項目中創(chuàng)建Eval類,在類的主方法中定義變量,使用賦值運算符為變量賦值。inta,b,c;//聲明int型變量a、b、ca=15;//將15賦給變量ac=b=a+4;//將a+4的值賦給變量b、cSystem.out.println("c值為:"+c);//將變量c的值輸出System.out.println("b值為:"+b);//將變量b的值輸出其運行結(jié)果中b和c的值都等于19。在Java中,可以把賦值運算符連在一起使用。例如:x=y=z=5;在這個語句中,變量x、y、z得到同樣的值5,賦值運算符使用的順序是先將a+4的值賦給b,再將b的值賦給c,從右向左運算。不過在程序開發(fā)過程中不建議使用這種賦值語法。3.5.2?算術(shù)運算符Java中的算術(shù)運算符主要有+(加號)、-(減號)、*(乘號)、/(除號)和%(求余),它們都是二元運算符。Java中算術(shù)運算符的功能及使用方式如表3-5所示。表3-5算術(shù)運算符運算符說明實例結(jié)果+加12.45f+1531.45-減4.56-0.164.4*乘5L*12.45f62.25/除7/23%取余數(shù)1%21其中,“+”和“-”運算符還可以作為數(shù)據(jù)的正負(fù)號,如+5、-7。除法運算時,要記住0不可以作除數(shù)。例如,運行語句inta=5/0,系統(tǒng)會報出ArithmeticException的異常?!纠?.21】在項目中創(chuàng)建Arith類,在類的主方法中定義變量,使用算術(shù)運算符對變量進(jìn)行計算,并在控制臺中將計算結(jié)果輸出。publicclassArith{//創(chuàng)建類publicstaticvoidmain(String[]args){//主方法floatnumber1=45.56f;//聲明float型變量并賦值intnumber2=152;//聲明int型變量并賦值System.out.println("45.56f和152的和為:"+number1+number2);//將變量相加之和輸出System.out.println("45.56f和152的差為:"+(number2-number1));//將變量相減之差輸出System.out.println("45.56f和152的積為:"+number1*number2);//將變量相乘的積輸出System.out.println("45.56f和152的商為:"+number1/number2);//將變量相除的商輸出}}其運行結(jié)果如下:45.56f和152的和為:45.5615245.56f和152的差為:106.4445.56f和152的積為:6925.1245.56f和152的商為:0.299736863.5.3?自增和自減運算符自增運算符和自減運算符是單目運算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個整型或浮點型變量;放在操作元前面的自增運算符與自減運算符會先將變量的值加1減1,然后使該變量參與表達(dá)式的運算,放在操作元后面的自增運算符與自減運算符會先使變量參與表達(dá)式的運算,然后將該變量加1(減)1。示例代碼如下。++a(--a)//表示在使用變量a之前,使a的值加(減)1a++(a--)//表示在使用變量a之后,使a的值加(減)1【例3.22】粗略地分析++a和a++的作用都相當(dāng)于a=a+1,賦值a=4,計算a++和++a的值。Inta=4;//聲明變量a,并賦值b=++a;//將a自加賦給bb=a++;//將a先賦給b,然后a自加第2條語句是先將a自加,把a自加后的值賦給b,自加后a的值是5,b的值也是5;第3條語句是先將a的值賦給b,然后將a自加,自加后a的值是5,而b的值是4。3.5.4?比較運算符比較運算符屬于二元運算符,用于程序中的變量和變量之間、變量和常量之間,以及其他類型的信息之間的比較。比較運算符的運算結(jié)果是boolean型,當(dāng)運算符對應(yīng)的關(guān)系成立時,運算結(jié)果是true,否則運算結(jié)果是false。比較運算符通常用在條件語句中作為判斷條件成立的依據(jù)。比較運算符的種類和用法如表3-6所示。表3-6比較運算符的種類和用法運算符作用舉例操作數(shù)據(jù)結(jié)果>比較左邊的值是否大于右邊的值'a'>'b'整型、浮點型、字符型false<比較左邊的值是否小于右邊的值156<456整型、浮點型、字符型false==比較左邊的值是否等于右邊的值'c'=='c'基本數(shù)據(jù)類型、引用型true>=比較左邊的值是否大于等于右邊的值479>=426整型、浮點型、字符型true<=比較左邊的值是否小于等于右邊的值12.45<=45.5整型、浮點型、字符型true!=比較左邊的值是否不等于右邊的值'y'!='t'基本數(shù)據(jù)類型、引用型true【例3.23】在項目中創(chuàng)建Compare類,在類的主方法中創(chuàng)建整型變量,使用比較運算符對變量進(jìn)行比較運算,將運算后的結(jié)果輸出。publicclassCompare{//創(chuàng)建類publicstaticvoidmain(String[]args){intnumber1=4;//聲明int型變量intnumber2=5;//聲明int型變量//依次將變量number1與變量number2的比較結(jié)果輸出System.out.println("4>5是否成立:"+(number1>number2));System.out.println("4<5是否成立:"+(number1<number2));System.out.printIn("4==5是否成立:"+(number1==number2));System.out.println("4!=5是否成立:"+(number1!=number2));System.out.printIn("4>=5是否成立:"+(number1>=number2));System.out.println("4<=5是否成立:"+(number1<=number2));}}其運行結(jié)果如下:4>5是否成立:false4<5是否成立:true4==5是否成立:false4!=5是否成立:true4>=5是否成立:false4<=5是否成立:true3.5.5?邏輯運算符邏輯運算符包括&&(&)(邏輯與)、|(||)(邏輯或)和!(邏輯非),返回值為布爾類型的表達(dá)式,操作元也必須是bodean型數(shù)據(jù)。與比較運算符相比,邏輯運算符可以表示更加復(fù)雜的條件,如連接幾個關(guān)系表達(dá)式進(jìn)行判斷。在邏輯運算符中,除了“!”是一元運算符之外,其余的都是二元運算符。其用法和含義如表3-7所示。表3-7邏輯運算符的用法和含義運算符含義用法結(jié)合方向&&、&邏輯與Op1&&op2左到右||、|邏輯或Op1||op2左到右!邏輯非!op右到左用邏輯運算符進(jìn)行邏輯判斷時,不同的邏輯運算符與不同的操作元進(jìn)行操作時,運行結(jié)果也不相同,如表3-8所示。表3-8使用邏輯運算符進(jìn)行邏輯運算表達(dá)式1表達(dá)式2表達(dá)式1&&表達(dá)式2表達(dá)式1||表達(dá)式2!表達(dá)式1truetruetruetruefalsetruefalsefalsetruefalsefalsefalsefalsefalsetruefalsetruefalsetruetrue在Java中,邏輯運算符“&&”與“&”都表示“邏輯與”,從表3-8中可以看出,當(dāng)兩個表達(dá)式都為true時,邏輯與的結(jié)果才會是true。使用邏輯運算符“&”會判斷兩個表達(dá)式;而邏輯運算符“&&”則是針對boolean類型進(jìn)行判斷,當(dāng)?shù)谝粋€表達(dá)式為false時,則不去判斷第二個表達(dá)式,直接輸出結(jié)果,使用“&&”可節(jié)省計算機判斷的次數(shù)。通常將這種在邏輯表達(dá)式中從左端的表達(dá)式即可推斷出整個表達(dá)式的值稱為“短路”,而那些始終執(zhí)行邏輯運算符兩邊的表達(dá)式稱為“非短路”?!?&”屬于“短路”運算符,而“&”則屬于“非短路”運算符?!皘|”和“|”也是如此?!纠?.24】在項目中創(chuàng)建Calculation類,在類的主方法中創(chuàng)建整型變量,使用邏輯運算符對變量進(jìn)行運算,并將運算結(jié)果輸出。publicclassCalculation{//創(chuàng)建類publicstaticvoidmain(String[]args){inta=2;//聲明int型變量aintb=5;//聲明int型變量bbooleanresult1=((a>b)&&(a!=b));//聲明布爾型變量booleanresult2=((a>b)||(a!=b));//聲明布爾型變量System.out.println("(a>b)&&(a!=b)的值是:"+result1);//將變量result1輸出System.out.println("(a>b)II(a!=b)的值是:"+result2);//將變量result2輸出}}其運行結(jié)果如下:(a>b)&&(a!=b)的值是:false(a>b)II(a!=b)的值是:true3.5.6?位運算符位運算符用于處理整型和字符型的操作數(shù),對其內(nèi)存進(jìn)行操作,數(shù)據(jù)在內(nèi)存中以二進(jìn)制的形式表示。例如,int型常量7的二進(jìn)制表示是00000000000000000000000000000111、-8的二進(jìn)制表示是11111111111111111111111111111000,最高位是符號位,0表示正數(shù)、1表示負(fù)數(shù)。Java語言提供的位運算符如表3-9所示。表3-9位運算符運算符含義用法運算分類~按位取反~op1按位運算&按位與op1&op2|按位或op1|op2^按位異或op1^op2<<左移op1<<op2>>右移op1>>op2移位運算符>>>無符號右移op1>>>op21.“按位與”運算“按位與”運算的運算符為“&”,是雙目運算符。其運算的法則是,如果兩個操作數(shù)對應(yīng)位都是1,則結(jié)果位才是1,否則為0。如果兩個操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同。2.“按位或”運算“按位或”運算的運算符為“|”,是雙目運算符。其運算法則是,如果兩個操作數(shù)對應(yīng)位都是0,則結(jié)果位才是0,否則為1。如果兩個操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同。3.“按位非”運算“按位非”運算又稱為“按位取反”運算,運算符為“~”,是單目運算符。其運算法則是,將操作數(shù)二進(jìn)制中的1全部修改為0,0全部修改為1。4.“按位異或”運算“按位異或”運算的運算符是“^”,是雙目運算符。其運算法則是,當(dāng)兩個操作數(shù)的二進(jìn)制表示相同(同時為0或同時為1)時,結(jié)果為0,否則為1。若兩個操作數(shù)的精度不同,則結(jié)果數(shù)的精度與精度高的操作數(shù)相同。5.移位運算符Java語言中的移位運算符有3種,其操作的數(shù)據(jù)類型只有byte、shot、char、int和long五種。(1)左移運算符“<<”。所謂左移運算符就是將左邊的操作數(shù)在內(nèi)存中的二進(jìn)制數(shù)據(jù)左移右邊操作數(shù)指定的位數(shù),左邊移空的部分補0。示例代碼如下:48<<1;//將48的二進(jìn)制數(shù)向左移1位即將48的二進(jìn)制數(shù)向左移1位,移位后的結(jié)果是96。(2)右移運算符“>>”。右移則復(fù)雜一些,當(dāng)使用“>>”符號時,如果最高位是0,左移空的位就填入0;如果最高位是1,右移空的位就填入1,使用方法與左移類似。示例代碼如下:48>>1;//將48的二進(jìn)制數(shù)向右移1位即將48的二進(jìn)制數(shù)向右移1位,移位后的結(jié)果是24。(3)無符號右移運算符“>>>”。Java還提供了無符號右移運算符“>>>”,不管最高位是0還是1,左移空的高位都填入0。移位能讓用戶實現(xiàn)整數(shù)除以或乘以2的n次方運算。例如,y<<2與y*4的結(jié)果相同;y>>1的結(jié)果與y/2的結(jié)果相同??傊?,一個數(shù)左移n位,就是將這個數(shù)乘以2的n次方;一個數(shù)右移n位,就是將這個數(shù)除以2的n次方?!纠?.25】在項目中創(chuàng)建Calculation類,在類的主方法中創(chuàng)建整型變量,使用邏輯運算符對變量進(jìn)行運算,并將運算結(jié)果輸出。publicclassCalculation{//聲明類publicstaticvoidmain(String[]args){//主方法inti=46;//定義變量intj=97;charc='a';System.out.println("46&97的值是:"(i&j));//輸出i和按位與的結(jié)果System.out.println("46^a的值是:"+(i^c));//輸出i和按位異或的結(jié)果System.out.println("46>>1的值是:"+(i>>1));//將i按位右移1位}}其運行結(jié)果如下:46&97的值是:3246^a的值是:7946>>1的值是:233.5.7?三元運算符三元運算符是Java中唯一個三目運算符,其操作元有3個,第一個是條件表達(dá)式,其余的是兩個值,條件表達(dá)式成立時運算取第一個值,不成立時取第二個值。示例代碼如下:booleanb=20<45?true:false;三元運算符用于判斷,等價的if…else語句如下:booleana;//聲明boolean變量if(20<45)//將20<45作為判斷條件a=true;//條件成立將true賦值給aelsea=false;//條件不成立將false賦值給a當(dāng)表達(dá)式“20<45”的運算結(jié)果返回true時,則boolean型變量a取值true;當(dāng)表達(dá)式“20<45"返回false時,則boolean型變量a取值false,此例的結(jié)果是true。【例3.26】在項目中創(chuàng)建Calculation類,在類的主方法中創(chuàng)建整型變量,使用三目運算符,并將運算結(jié)果輸出。publicclassCalculation{//聲明類publicstaticvoidmain(String[]args){//主方法inti=46;//局部變量intj=97intz=i>j?100:200;//使用三目運算符System.out.println("i>j?100:200的值是:"+z);//輸出z}}其運行結(jié)果如下:i>j?100:200的值是:2003.5.8?運算符優(yōu)先級Java中的表達(dá)式就是使用運算符連接起來的符合Java規(guī)則的式子,運算符的優(yōu)先級決定了表達(dá)式中運算執(zhí)行的先后順序。各運算符的優(yōu)先級由高到低的順序如下:增量和減量運算>算術(shù)運算>比較運算>邏輯運算>賦值運算各運算符之間大致的優(yōu)先級如上所示,但如果兩個符號屬于同運算符,又怎么區(qū)分優(yōu)先級呢?Java中各符號的優(yōu)先級如表3-10所示。表3-10運算符的優(yōu)先級優(yōu)先級描述運算符優(yōu)先級描述運算符1括號()9按位與運算&2正負(fù)號+、-10按位異或^3一元運算符++、--、!11按位或運算|4乘除*、/、%12邏輯與運算&&5加減+、-13邏輯或運算||6移位運算>>、<<、>>>14三元運算符?:7比較大小<、>、>=、<=15賦值運算符=8比較是否相等==、!=如果兩個運算符有相同的優(yōu)先級,那么左邊的表達(dá)式要比右邊的表達(dá)式先被處理。在編寫程序時,盡量使用括號運算符來限定運算次序,以免產(chǎn)生錯誤的運算順序。3.5.9?范例1:不用其他變量實現(xiàn)兩變量互換在對變量進(jìn)行互換時,將創(chuàng)建一個臨時變量來共同完成互換,臨時變量的創(chuàng)建增加了系統(tǒng)資源的消耗。如果需要交換的是兩個整數(shù)類型的變量,則可以使用更高效的方法:使用異或運算符進(jìn)行互換,而不使用第三變量。要達(dá)到的運行結(jié)果如下:請輸入變量A的值12請輸入變量B的值80A=12B=80執(zhí)行變量互換…A=80B=12在項目中創(chuàng)建VariableExchange類,在類中創(chuàng)建掃描器對象接收用戶輸入的兩個變量值,然后通過位運算符中的異或運算符“^”實現(xiàn)兩個變量的互換。示例代碼如下:importjava.util.Scanner;publicclassVariableExchange{//聲明類publicstaticvoidmain(String[]args){//主方法Scannerscan=newScanner(System.in);//創(chuàng)建掃描器System.out.println("請輸入變量A的值");longA=scan.nextLong();//接收第一個變量值System.out.println("請輸入變量B的值");longB=scan.nextLong();//接收第二個變量值System.out.println("A="+A+"\tB="+B);System.out.println("執(zhí)行變量互換…");A=A^B;//執(zhí)行變量互換B=B^A;A=A^B;System.out.println("A="+A+"\tB="+B);//輸出交換后的結(jié)果}}3.5.10?范例2:判斷數(shù)字的奇偶性根據(jù)數(shù)字被2除的余數(shù)來判斷一個數(shù)的奇偶性,如果余數(shù)是0,該數(shù)是偶數(shù),否則是奇數(shù)。本范例使用三元運算符進(jìn)行判斷,運算結(jié)果如下:請輸入一個整數(shù):123這個數(shù)字是:奇數(shù)在項目中創(chuàng)建ParityCjeck類,在該類的主方法中創(chuàng)建掃描器對象接收用戶輸入的數(shù)字,通過三元運算符判斷該數(shù)的奇偶性,并在控制臺中輸出。示例代碼如下:importjava.util.Scanner;publicclassParityCjeck{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);//創(chuàng)建輸入流掃描器System.out.println("請輸入一個整數(shù):");longnumber=scan.nextLong();//獲取用戶輸入的整數(shù)Stringcheck=(number%2==0)?"這個數(shù)字是:偶數(shù)":這個數(shù)字是:奇數(shù)";System.out.println(check);}}3.6類型轉(zhuǎn)換類型轉(zhuǎn)換是將變量從一種類型更改為另一種類型的過程。例如,可以將String類型數(shù)據(jù)456轉(zhuǎn)換為一個int整型變量456。Java對數(shù)據(jù)類型的轉(zhuǎn)換有著嚴(yán)格的規(guī)定,數(shù)據(jù)從占用存儲空間較小的類型轉(zhuǎn)換為占用存儲空間較大的數(shù)據(jù)類型時,則做自動類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換);反之則必須做強制類型轉(zhuǎn)換(顯式類型轉(zhuǎn)換)。3.6.1?自動類型轉(zhuǎn)換Java中8種基本類型可以進(jìn)行混合運算,不同類型的數(shù)據(jù)在運算過程中會先自動轉(zhuǎn)換為同一類型,再進(jìn)行運算。數(shù)據(jù)類型根據(jù)與用存儲空間的大小分為高低不同的級別,占用空間小的級別低,占用空間大的級別高,自動類型轉(zhuǎn)換遵循低級到高級轉(zhuǎn)換的規(guī)則?!纠?.27】分別定義float型變量number1并賦值45與int型變量number2并賦值152,在控制臺中將numberl+number2的值輸出。floatnumber1=45f;//聲明float型變量并賦值intnumber2=152;//聲明int型變量并賦值System.out.println(number1+number2);系統(tǒng)先將int型變量轉(zhuǎn)換成float型變量之后相加,此時執(zhí)行輸出語句,在控制臺上輸出197.0。自動類型轉(zhuǎn)換要遵循一定的規(guī)則,那么在運算時各類型間將如何轉(zhuǎn)換呢?各種情況下數(shù)據(jù)類型間轉(zhuǎn)換的一般規(guī)則如表3-11所示。表3-11隱式類型轉(zhuǎn)換規(guī)則操作數(shù)1的數(shù)據(jù)類型操作數(shù)2的數(shù)據(jù)類型轉(zhuǎn)換后的數(shù)據(jù)類型byte、short、charintintbyte、short、char、intlonglongbyte、short、char、int、longfloatfloatbyte、short、char、int、long、floatdoubledouble【例3.28】在項目中創(chuàng)建Conver類,在類的主方法中創(chuàng)建不同數(shù)值類型的變量并進(jìn)行運算,在控制臺上將運行結(jié)果輸出。publicclassConver{//創(chuàng)建類publicstaticvoidmain(String[]args){//主方法bytemybyte=127;//定義byte型變量mybyte并賦值127intmyint=150;//定義int型變量myint并賦值150floatmyfloat=452.12f;//定義float型變量myfloat并賦值charmychar=10;//定義char型變量mychar并賦值doublemydouble=45.46546;//定義double型變量并賦值 //將運算結(jié)果輸出System.out.println("127與452.12相加的和是:"+(mybyte+myfloat));System.outprintln("127與150相乘的積是:"+mybyte*myint);System.out.println("127被10除的商是:"+mybyte/mychar);System.outprintn("45.46546和10相加的和是:"+(mydouble+mychar));}}其運行結(jié)果如下:127與452.12相加的和是:579.12127與150相乘的積是:19050127被10除的商是:1245.46546和10相加的和是:55.465463.6.2?強制類型轉(zhuǎn)換當(dāng)把高精度的變量的值賦給低精度的變量時,必須使用顯式類型轉(zhuǎn)換運算(又稱為強制類型轉(zhuǎn)換)。其語法格式如下:(類型名)要轉(zhuǎn)換的值【例3.29】將不同的數(shù)據(jù)類型進(jìn)行顯式類型轉(zhuǎn)換。Inta=(int)45.23;//此時輸出a的值為45longy=(long)456.6F;//此時輸出y的值為456intb=(int)'d';//此時輸出b的值為100當(dāng)把整數(shù)分別賦值給bye、short、int、long型變量時,不可超出這些變量的取值范圍,否則就會發(fā)生數(shù)據(jù)溢出。示例代碼如下:shorts=516;byteb=(byte)s;由于byte型變量的最大值是127,516已經(jīng)超過了其取值范圍,因此發(fā)生數(shù)據(jù)溢出。數(shù)據(jù)轉(zhuǎn)換的過程如下:0000001000000100short類型16位↓00000100byte類型8位此時就造成了數(shù)據(jù)丟失,所以在使用強制數(shù)據(jù)類型轉(zhuǎn)換時,一定要加倍小心,不要超出變量的取值范圍,否則就得不到想要的結(jié)果。boolean型的值不能被轉(zhuǎn)換為其他數(shù)據(jù)類型,反之亦然。3.7代碼注釋和編碼規(guī)范在程序代碼中適當(dāng)?shù)靥砑幼⑨尶梢蕴岣叱绦虻目勺x性、可維護(hù)性;好的編碼規(guī)范可以使程序更易閱讀和理解。本節(jié)將向讀者介紹Java中的幾種代碼注釋,以及應(yīng)該注意的編碼規(guī)范。3.7.1?代碼注釋通過在程序代碼中添加注釋可提高程序

溫馨提示

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

評論

0/150

提交評論