版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章數(shù)據(jù)類型與運算符本章要點目標理解:常量、變量和表達式。掌握:Java中的八種原始數(shù)據(jù)類型。掌握:運算符和表達式的應(yīng)用。重點掌握:熟練使用整型、浮點型、字符型常用的數(shù)據(jù)類型的定義,表示和引用。掌握:算術(shù)運算符、關(guān)系運算符和邏輯運算符的應(yīng)用。難點掌握:自增、自減運算符的不同用法。2.1.1常量定義:常量是在程序運行過程中其值始終保持不變的量。聲明常量語法:final數(shù)據(jù)類型常量名=值;例如:finalintA=12;一般常量用大寫。2.1.2變量定義:變量是在程序運行時值會發(fā)生變化的量。聲明變量語法:數(shù)據(jù)類型變量名1[,變量名2,……];數(shù)據(jù)類型變量名1[=初值][,變量名2[=初值],…];intk;//聲明一個存放整型且名是k的變量floatx,y;//聲明浮點型變量x,ycharch=‘w’;//聲明字符變量ch,初值為w2.1常量、變量和表達式2.1常量、變量和表達式【例2-1】源程序名“ComputeArea.java”,計算面積示例。
//ComputeArea為類名; publicclassComputeArea{ publicstaticvoidmain(Stringargs[]){
doubleradius,area; //聲明變量; finaldoublePI=3.1415926; //聲明常量; radius=20; //給變量賦值;
area=radius*radius*PI;
System.out.println(“area
is”+area); } }
2.2數(shù)據(jù)類型每個數(shù)據(jù)類型都有一個值域,或者叫做范圍。編譯器根據(jù)變量或常量的數(shù)據(jù)類型對其分配存儲空間。Java為數(shù)值、字符值和布爾值數(shù)據(jù)提供了幾種基本數(shù)據(jù)類型。Java語言的數(shù)據(jù)類型劃分如圖2-1。數(shù)據(jù)類型基本數(shù)據(jù)類型類class數(shù)據(jù)類型整數(shù)類型浮點類型字符類型char布爾類型boolean接口interface數(shù)組單精度浮點型float雙精度浮點型double字節(jié)型byte短整型short整型int長整型long圖2-1Java語言的數(shù)據(jù)類型2.2數(shù)據(jù)類型表2-1Java的基本數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字占用位數(shù)缺省數(shù)值取值范圍布爾型boolean8falsetrue,false字符型char16‘\u0000’'\u0000'~'\uFFFF'’字節(jié)型byte80–128~127短整型short160–32768~32767整型int320–2147483648~2147483647長整型long640–9223372036854775808~9223372036854775807單精度float320.0F-3.4E38~3.4E38雙精度double640.0D-1.7E308~1.7E3082.2數(shù)據(jù)類型2.2.1整數(shù)類型包括四種類型:byte、short、int、long。整數(shù)常量:十進制整數(shù),如,10,-4;八進制整數(shù),以0開頭,如010,-012。十六進制整數(shù),以0x開頭,如0x10,零x。Java默認整數(shù)常量類型為int;要表示long類型需要在整數(shù)后面加上L或l。整數(shù)變量:聲明整數(shù)類型變量:int
aintvar //聲明aintvar變量是int類型;long alongvar //聲明alongvar變量是long類型;注意:要根據(jù)變量可能處于的最大值選擇合適的整型。2.2.2浮點類型包括兩種類型:float和doubleJava默認的浮點型是double類型;數(shù)字后面跟d或D,表示double類型;數(shù)字后面跟f或F,表示float類型;2.2數(shù)據(jù)類型【例2-2】源程序名“TypeMaxValue.java”,數(shù)值數(shù)據(jù)類型的最大值示例。
publicclassTypeMaxValue{
publicstaticvoidmain(Stringargs[])
{ bytelargestByte=Byte.MAX_VALUE; //定義byte類型變量 shortlargestShort=Short.MAX_VALUE; //定義short類型變量
int
largestInteger=Integer.MAX_VALUE; //定義int類型的變量 longlargestLong=Long.MAX_VALUE; //定義long類型的變量 floatlargestFloat=Float.MAX_VALUE; //定義float類型的變量 doublelargestDouble=Double.MAX_VALUE;//定義double類型變量 //在屏幕上顯示對應(yīng)類型的最大值
System.out.println("最大的byte值是:"+largestByte);
System.out.println("最大的short值是:"+largestShort); System.out.println("最大的integer值是:"+largestInteger);
System.out.println("最大的long值是:"+largestLong);
System.out.println("最大的float值是:"+largestFloat);
System.out.println("最大的double值是:"+largestDouble);}
}2.2數(shù)據(jù)類型運行結(jié)果程序分析Java中每種數(shù)據(jù)類型都封裝為一個類,通過類型類的MAX_VALUE方法找到各種數(shù)值數(shù)據(jù)類型的取值最大值。2.2數(shù)據(jù)類型2.2.3字符類型字符型常量字符型常量就是用兩個單引號括起來的一個字符。如‘A’,‘1’,‘’表示空格。FinalcharNAME=‘A’;字符型變量字符型變量是char,用于表示單個字符。charletter=‘d’;charnumchar=‘2’; 字符串常量字符串常量就是括在兩個雙引號之間0個或多個字符組成的序列。Stringmessage=“WelcometoJava!”;//字符串必須用雙引號括住。
注意:字符型變量可以進行增量減量運算。“A”是字符串;而‘A’是字符。2.2數(shù)據(jù)類型2.2.4布爾類型布爾數(shù)據(jù)類型的值域包括兩個值:真(true)和假(false)。boolean
doorOpen=true;布爾類型的值不能轉(zhuǎn)換成任何數(shù)據(jù)類型,true不等于1,false也不等于0。2.2.5類型之間的轉(zhuǎn)換自動類型轉(zhuǎn)換自動轉(zhuǎn)換按照低級類型轉(zhuǎn)換成高級類型的規(guī)則進行,有系統(tǒng)自動實現(xiàn)。bye->short->int->long->float->double //從左到右依次自動轉(zhuǎn)換char->int //char類型可以直接轉(zhuǎn)換成int類型強制類型轉(zhuǎn)換由高級類型向低級類型轉(zhuǎn)換叫做強制類型轉(zhuǎn)換。格式:(目標數(shù)據(jù)類型)變量名或表達式例如:inta=345; byteb; b=(byte)a;2.2數(shù)據(jù)類型【例2-3】源程序名“TypeTest.java”,數(shù)據(jù)類型轉(zhuǎn)換示例。
publicclassTypeTest{ publicstaticvoidmain(Stringargs[]){
intc; longd=6000; floatf; doubleg=123456789.987654321; c=(int)d;f=(float)g;//導(dǎo)致精度的損失.System.out.println("c="+c);System.out.println("d="+d);System.out.println("f="+f);System.out.println("g="+g);}}2.1簡單數(shù)據(jù)類型運行結(jié)果
程序分析將long類型數(shù)據(jù)強制轉(zhuǎn)換為int類型,有些情況可能導(dǎo)致數(shù)據(jù)溢出。將double類型數(shù)據(jù)強制轉(zhuǎn)換為float類型,將導(dǎo)致精度的損失,通過運行結(jié)果可以看出。所以,進行數(shù)據(jù)類型的強制轉(zhuǎn)換時一定需要慎重。2.2.6轉(zhuǎn)義序列轉(zhuǎn)義字符代表一些特殊字符。轉(zhuǎn)義字符主要通過在字符前加一個反斜杠“\”來實現(xiàn)。常用的轉(zhuǎn)義字符
轉(zhuǎn)義字符含
義轉(zhuǎn)義字符含
義'\b'退格'\uxxxx'用4位16進制數(shù)表示字符'\t'制表符tab'\"'雙引號'\r'回車'\''單引號'\n'換行'\\'反斜線'\f'換頁'\ddd'用3位8進制數(shù)表示字符2.2數(shù)據(jù)類型2.3運算符和表達式運算符是表明作何種運算的符號。操作數(shù)是被運算的數(shù)據(jù)。表達式是由操作數(shù)和運算符組成的式子。表達式的運算結(jié)果稱為表達式的值。Java提供的運算符,按操作數(shù)的數(shù)目來分,可有:一元運算符:需要一個操作數(shù)。++i,--i,+i,-i二元運算符:需要二個操作數(shù)。a+b,a-b,a>b三元運算符:需要三個操作數(shù)。表達式1?表達式2:表達式3三目表達式的運算規(guī)則是:如果表達式1的值為true,則整個表達式的值取表達式2的值。如果表達式1的值為false,則整個表達式的值取表達式3的值。例如,4>3?4:3表達式的值為4。多數(shù)二元運算符具有自左向右的結(jié)合性,一元運算符具有自右向左結(jié)合性。運算符按功能分為8類:算術(shù)運算符;關(guān)系運算符;邏輯運算符;位運算符;條件運算符;賦值運算符;擴展運算符;其他運算符(分量運算符,下標運算符等)。2.3運算符和表達式2.3.1算術(shù)運算符算術(shù)運算符可以對數(shù)值型和字符型數(shù)據(jù)進行運算,但不能對布爾類型數(shù)據(jù)進行運算。表2-3Java定義的算術(shù)運算符運算符意義運算符意義+加%求余-減++自增*乘--自減/除基本算術(shù)運算符加,減,乘,除;注意:對整數(shù)進行“/”除法運算時,所有余數(shù)都去掉。doublei1=1.0/2.0;//i1的結(jié)果是0.5
inti2=1/2;//i2的結(jié)果是0inti3=5/2; //i3的結(jié)果是2doublei4=5.0/2.0//i4的結(jié)果是2.5 2.3運算符和表達式2.3.1算術(shù)運算符模運算符整數(shù),浮點數(shù)都可以進行模運算,其結(jié)果是整數(shù)和浮點數(shù)。inti5=42%10 //i5的值為2doublei6=42.5%10//i6的值為2.5自增和自減運算符x++,++x等同于x=x+1;x--,--x等同于x=x-1;++,--前置后置于變量使用不同若運算符是前置于變量的,則變量先加1或減1,再參與表達式中的運算。若運算符是后置于變量的,則變量先參與表達式的運算,再加1或減1。例如:inti=10;intn;n=10*i++;//先算10*i即10*10等于100,再計算機i++,i的值是11,n值是100另例:doublex=1.0;doubley=5.0;doublez=x--+(++y);三行都執(zhí)行完后,y變?yōu)?.0,z變?yōu)?.0,而x變?yōu)?.0。2.3運算符和表達式2.3.2關(guān)系運算符和邏輯運算符關(guān)系運算符關(guān)系運算又稱比較運算,用來比較兩個同類型數(shù)據(jù)的大小。關(guān)系運算符都是雙目運算符。關(guān)系運算的結(jié)果是布爾值,即true(真)或false(假)。Java提供的關(guān)系運算符見表2-4表。表2-4比較運算符運算符名稱例結(jié)果<小于1<3true<=小于等于1<=3true>大于1>2false>=大于等于1>=2false==等于1==2false2.3運算符和表達式邏輯運算符邏輯運算又稱布爾運算,是對布爾值進行運算,其運算結(jié)果仍為布爾值。常用的邏輯運算符如表2-5所示。
表2-5邏輯運算符運算符名稱舉例描述!非!x對x進行取反運算。例如,若x為true,結(jié)果為false&&與x&&y若x和y都為true,結(jié)果才為true||或x||y若x和y都為false,結(jié)果才為false^異或x^y假設(shè)變量x=1和y=2,則(x>1)^(y==2)的結(jié)果為true。2.3運算符和表達式2.3.3位運算符位運算符用于對二進制位(bit)進行運算。位運算符的操作數(shù)和結(jié)果都是整數(shù)。常見的位運算符如表2-6所示。表2-6位運算符運算符名稱應(yīng)用舉例運算規(guī)則~按位取反~x對x每個二進制位取反&按位與x&y對x,y每個對應(yīng)的二進制位做與運算|按位或x|y對x,y每個對應(yīng)的二進制位做或運算^按位異或x^y對x,y每個對應(yīng)的二進制位做異或運算<<按位左移x<<a將x各二進制位左移a位>>按位右移x>>a將x各二進制位右移a位>>>不帶符號的按位右移x>>>a將x各二進制位右移a位,左面的空位要補02.3運算符和表達式2.3.4賦值運算符和條件運算符賦值運算符賦值運算符用于給變量或?qū)ο筚x值?;举x值運算符使用形式:變量或?qū)ο?表達式“=”的作用是,把右邊表達式的值賦給左邊的變量或?qū)ο?。例如:j=k=i+2;//運算順序是,先將i加2的值賦給k,再把k的值賦給j。x=12.45;y=2*x+1;i=(int)x;條件賦值運算符:條件賦值運算符(?:)是三元運算符。一般形式:<表達式1>?<表達式2>:<表達式3>A=5;B=A>10?100:1000; //結(jié)果B為10002.3運算符和表達式2.3.5擴展運算符擴展運算符是在基本賦值運算符前面加上其他運算符后構(gòu)成的賦值運算符。Java提供的各種擴展運算符見表2-7所示。表2-7擴展運算符表2-7復(fù)合賦值運算符運算符名稱舉例功能+=加賦值運算符a+=ba=a+b-=減賦值運算符a-=ba=a-b*=乘賦值運算符a*=ba=a*b/=除賦值運算符a/=ba=a/b%=取余賦值運算符a%=ba=a%b&=位與賦值運算符a&=ba=a&b|=位或賦值運算符a|=ba=a|b^=位異或賦值運算符a^=ba=a^b<<=算術(shù)左移賦值運算符a<<=ba=a<<b>>=算術(shù)右移賦值運算符a>>=ba=a>>b2.3運算符和表達式2.3.6其他運算符分量運算符(“.”):意為Sytem類的out方法;實例運算符(instanceof):tinstanceofTread; //用來測試t是否是Tread的一個實例內(nèi)存分配運算符(new):t=newThread(“T1”);
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村旅游數(shù)字化轉(zhuǎn)型與智能化應(yīng)用策略
- 污水管網(wǎng)改造提升社會效益評估
- 2024年度房屋買賣合同鑒定委托書模板3篇
- 2024全新教育培訓(xùn)機構(gòu)勞務(wù)合同到期不續(xù)簽合同模板3篇
- 2024年度廚房廢棄物資源化利用合同3篇
- 2024版二手商品房買賣合同附環(huán)保材料及綠色建筑標準要求3篇
- 2024年度軟件開發(fā)合同服務(wù)內(nèi)容擴展規(guī)范2篇
- 2024年度國際貿(mào)易進口關(guān)稅減免與稅收籌劃合同3篇
- 2024年危險化學(xué)品運輸行業(yè)信息服務(wù)平臺合同3篇
- 2024年園林景觀建設(shè)土方工程承包協(xié)議范本3篇
- 2024蜀繡行業(yè)市場趨勢分析報告
- 電力法律法規(guī)培訓(xùn)
- 北京交通大學(xué)《成本會計》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年世界職業(yè)院校技能大賽“智能網(wǎng)聯(lián)汽車技術(shù)組”參考試題庫(含答案)
- 【課件】校園安全系列之警惕“死亡游戲”主題班會課件
- 化工企業(yè)冬季安全生產(chǎn)檢查表格
- 2024年工程勞務(wù)分包聯(lián)合協(xié)議
- 蜜雪冰城員工合同模板
- 廣東省深圳市龍崗區(qū)2024-2025學(xué)年三年級上學(xué)期11月期中數(shù)學(xué)試題(含答案)
- GB/T 18916.66-2024工業(yè)用水定額第66部分:石材
- 餐飲服務(wù)電子教案 學(xué)習(xí)任務(wù)4 擺臺技能(3)-西餐零點餐臺擺臺
評論
0/150
提交評論