數(shù)據(jù)類(lèi)型與運(yùn)算符_第1頁(yè)
數(shù)據(jù)類(lèi)型與運(yùn)算符_第2頁(yè)
數(shù)據(jù)類(lèi)型與運(yùn)算符_第3頁(yè)
數(shù)據(jù)類(lèi)型與運(yùn)算符_第4頁(yè)
數(shù)據(jù)類(lèi)型與運(yùn)算符_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章數(shù)據(jù)類(lèi)型與運(yùn)算符本章要點(diǎn)目標(biāo)理解:常量、變量和表達(dá)式。掌握:Java中的八種原始數(shù)據(jù)類(lèi)型。掌握:運(yùn)算符和表達(dá)式的應(yīng)用。重點(diǎn)掌握:熟練使用整型、浮點(diǎn)型、字符型常用的數(shù)據(jù)類(lèi)型的定義,表示和引用。掌握:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符的應(yīng)用。難點(diǎn)掌握:自增、自減運(yùn)算符的不同用法。2.1.1常量定義:常量是在程序運(yùn)行過(guò)程中其值始終保持不變的量。聲明常量語(yǔ)法:final數(shù)據(jù)類(lèi)型常量名=值;例如:finalintA=12;一般常量用大寫(xiě)。2.1.2變量定義:變量是在程序運(yùn)行時(shí)值會(huì)發(fā)生變化的量。聲明變量語(yǔ)法:數(shù)據(jù)類(lèi)型變量名1[,變量名2,……];數(shù)據(jù)類(lèi)型變量名1[=初值][,變量名2[=初值],…];intk;//聲明一個(gè)存放整型且名是k的變量floatx,y;//聲明浮點(diǎn)型變量x,ycharch=‘w’;//聲明字符變量ch,初值為w2.1常量、變量和表達(dá)式2.1常量、變量和表達(dá)式【例2-1】源程序名“ComputeArea.java”,計(jì)算面積示例。

//ComputeArea為類(lèi)名; publicclassComputeArea{ publicstaticvoidmain(Stringargs[]){

doubleradius,area; //聲明變量; finaldoublePI=3.1415926; //聲明常量; radius=20; //給變量賦值;

area=radius*radius*PI;

System.out.println(“area

is”+area); } }

2.2數(shù)據(jù)類(lèi)型每個(gè)數(shù)據(jù)類(lèi)型都有一個(gè)值域,或者叫做范圍。編譯器根據(jù)變量或常量的數(shù)據(jù)類(lèi)型對(duì)其分配存儲(chǔ)空間。Java為數(shù)值、字符值和布爾值數(shù)據(jù)提供了幾種基本數(shù)據(jù)類(lèi)型。Java語(yǔ)言的數(shù)據(jù)類(lèi)型劃分如圖2-1。數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型類(lèi)class數(shù)據(jù)類(lèi)型整數(shù)類(lèi)型浮點(diǎn)類(lèi)型字符類(lèi)型char布爾類(lèi)型boolean接口interface數(shù)組單精度浮點(diǎn)型float雙精度浮點(diǎn)型double字節(jié)型byte短整型short整型int長(zhǎng)整型long圖2-1Java語(yǔ)言的數(shù)據(jù)類(lèi)型2.2數(shù)據(jù)類(lèi)型表2-1Java的基本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型關(guān)鍵字占用位數(shù)缺省數(shù)值取值范圍布爾型boolean8falsetrue,false字符型char16‘\u0000’'\u0000'~'\uFFFF'’字節(jié)型byte80–128~127短整型short160–32768~32767整型int320–2147483648~2147483647長(zhǎng)整型long640–9223372036854775808~9223372036854775807單精度f(wàn)loat320.0F-3.4E38~3.4E38雙精度double640.0D-1.7E308~1.7E3082.2數(shù)據(jù)類(lèi)型2.2.1整數(shù)類(lèi)型包括四種類(lèi)型:byte、short、int、long。整數(shù)常量:十進(jìn)制整數(shù),如,10,-4;八進(jìn)制整數(shù),以0開(kāi)頭,如010,-012。十六進(jìn)制整數(shù),以0x開(kāi)頭,如0x10,零x。Java默認(rèn)整數(shù)常量類(lèi)型為int;要表示long類(lèi)型需要在整數(shù)后面加上L或l。整數(shù)變量:聲明整數(shù)類(lèi)型變量:int

aintvar //聲明aintvar變量是int類(lèi)型;long alongvar //聲明alongvar變量是long類(lèi)型;注意:要根據(jù)變量可能處于的最大值選擇合適的整型。2.2.2浮點(diǎn)類(lèi)型包括兩種類(lèi)型:float和doubleJava默認(rèn)的浮點(diǎn)型是double類(lèi)型;數(shù)字后面跟d或D,表示double類(lèi)型;數(shù)字后面跟f或F,表示float類(lèi)型;2.2數(shù)據(jù)類(lèi)型【例2-2】源程序名“TypeMaxValue.java”,數(shù)值數(shù)據(jù)類(lèi)型的最大值示例。

publicclassTypeMaxValue{

publicstaticvoidmain(Stringargs[])

{ bytelargestByte=Byte.MAX_VALUE; //定義byte類(lèi)型變量 shortlargestShort=Short.MAX_VALUE; //定義short類(lèi)型變量

int

largestInteger=Integer.MAX_VALUE; //定義int類(lèi)型的變量 longlargestLong=Long.MAX_VALUE; //定義long類(lèi)型的變量 floatlargestFloat=Float.MAX_VALUE; //定義float類(lèi)型的變量 doublelargestDouble=Double.MAX_VALUE;//定義double類(lèi)型變量 //在屏幕上顯示對(duì)應(yīng)類(lèi)型的最大值

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ù)類(lèi)型運(yùn)行結(jié)果程序分析Java中每種數(shù)據(jù)類(lèi)型都封裝為一個(gè)類(lèi),通過(guò)類(lèi)型類(lèi)的MAX_VALUE方法找到各種數(shù)值數(shù)據(jù)類(lèi)型的取值最大值。2.2數(shù)據(jù)類(lèi)型2.2.3字符類(lèi)型字符型常量字符型常量就是用兩個(gè)單引號(hào)括起來(lái)的一個(gè)字符。如‘A’,‘1’,‘’表示空格。FinalcharNAME=‘A’;字符型變量字符型變量是char,用于表示單個(gè)字符。charletter=‘d’;charnumchar=‘2’; 字符串常量字符串常量就是括在兩個(gè)雙引號(hào)之間0個(gè)或多個(gè)字符組成的序列。Stringmessage=“WelcometoJava!”;//字符串必須用雙引號(hào)括住。

注意:字符型變量可以進(jìn)行增量減量運(yùn)算?!癆”是字符串;而‘A’是字符。2.2數(shù)據(jù)類(lèi)型2.2.4布爾類(lèi)型布爾數(shù)據(jù)類(lèi)型的值域包括兩個(gè)值:真(true)和假(false)。boolean

doorOpen=true;布爾類(lèi)型的值不能轉(zhuǎn)換成任何數(shù)據(jù)類(lèi)型,true不等于1,false也不等于0。2.2.5類(lèi)型之間的轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換自動(dòng)轉(zhuǎn)換按照低級(jí)類(lèi)型轉(zhuǎn)換成高級(jí)類(lèi)型的規(guī)則進(jìn)行,有系統(tǒng)自動(dòng)實(shí)現(xiàn)。bye->short->int->long->float->double //從左到右依次自動(dòng)轉(zhuǎn)換char->int //char類(lèi)型可以直接轉(zhuǎn)換成int類(lèi)型強(qiáng)制類(lèi)型轉(zhuǎn)換由高級(jí)類(lèi)型向低級(jí)類(lèi)型轉(zhuǎn)換叫做強(qiáng)制類(lèi)型轉(zhuǎn)換。格式:(目標(biāo)數(shù)據(jù)類(lèi)型)變量名或表達(dá)式例如:inta=345; byteb; b=(byte)a;2.2數(shù)據(jù)類(lèi)型【例2-3】源程序名“TypeTest.java”,數(shù)據(jù)類(lèi)型轉(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簡(jiǎn)單數(shù)據(jù)類(lèi)型運(yùn)行結(jié)果

程序分析將long類(lèi)型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為int類(lèi)型,有些情況可能導(dǎo)致數(shù)據(jù)溢出。將double類(lèi)型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為float類(lèi)型,將導(dǎo)致精度的損失,通過(guò)運(yùn)行結(jié)果可以看出。所以,進(jìn)行數(shù)據(jù)類(lèi)型的強(qiáng)制轉(zhuǎn)換時(shí)一定需要慎重。2.2.6轉(zhuǎn)義序列轉(zhuǎn)義字符代表一些特殊字符。轉(zhuǎn)義字符主要通過(guò)在字符前加一個(gè)反斜杠“\”來(lái)實(shí)現(xiàn)。常用的轉(zhuǎn)義字符

轉(zhuǎn)義字符含

義轉(zhuǎn)義字符含

義'\b'退格'\uxxxx'用4位16進(jìn)制數(shù)表示字符'\t'制表符tab'\"'雙引號(hào)'\r'回車(chē)'\''單引號(hào)'\n'換行'\\'反斜線'\f'換頁(yè)'\ddd'用3位8進(jìn)制數(shù)表示字符2.2數(shù)據(jù)類(lèi)型2.3運(yùn)算符和表達(dá)式運(yùn)算符是表明作何種運(yùn)算的符號(hào)。操作數(shù)是被運(yùn)算的數(shù)據(jù)。表達(dá)式是由操作數(shù)和運(yùn)算符組成的式子。表達(dá)式的運(yùn)算結(jié)果稱(chēng)為表達(dá)式的值。Java提供的運(yùn)算符,按操作數(shù)的數(shù)目來(lái)分,可有:一元運(yùn)算符:需要一個(gè)操作數(shù)。++i,--i,+i,-i二元運(yùn)算符:需要二個(gè)操作數(shù)。a+b,a-b,a>b三元運(yùn)算符:需要三個(gè)操作數(shù)。表達(dá)式1?表達(dá)式2:表達(dá)式3三目表達(dá)式的運(yùn)算規(guī)則是:如果表達(dá)式1的值為true,則整個(gè)表達(dá)式的值取表達(dá)式2的值。如果表達(dá)式1的值為false,則整個(gè)表達(dá)式的值取表達(dá)式3的值。例如,4>3?4:3表達(dá)式的值為4。多數(shù)二元運(yùn)算符具有自左向右的結(jié)合性,一元運(yùn)算符具有自右向左結(jié)合性。運(yùn)算符按功能分為8類(lèi):算術(shù)運(yùn)算符;關(guān)系運(yùn)算符;邏輯運(yùn)算符;位運(yùn)算符;條件運(yùn)算符;賦值運(yùn)算符;擴(kuò)展運(yùn)算符;其他運(yùn)算符(分量運(yùn)算符,下標(biāo)運(yùn)算符等)。2.3運(yùn)算符和表達(dá)式2.3.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符可以對(duì)數(shù)值型和字符型數(shù)據(jù)進(jìn)行運(yùn)算,但不能對(duì)布爾類(lèi)型數(shù)據(jù)進(jìn)行運(yùn)算。表2-3Java定義的算術(shù)運(yùn)算符運(yùn)算符意義運(yùn)算符意義+加%求余-減++自增*乘--自減/除基本算術(shù)運(yùn)算符加,減,乘,除;注意:對(duì)整數(shù)進(jìn)行“/”除法運(yùn)算時(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運(yùn)算符和表達(dá)式2.3.1算術(shù)運(yùn)算符模運(yùn)算符整數(shù),浮點(diǎn)數(shù)都可以進(jìn)行模運(yùn)算,其結(jié)果是整數(shù)和浮點(diǎn)數(shù)。inti5=42%10 //i5的值為2doublei6=42.5%10//i6的值為2.5自增和自減運(yùn)算符x++,++x等同于x=x+1;x--,--x等同于x=x-1;++,--前置后置于變量使用不同若運(yùn)算符是前置于變量的,則變量先加1或減1,再參與表達(dá)式中的運(yùn)算。若運(yùn)算符是后置于變量的,則變量先參與表達(dá)式的運(yùn)算,再加1或減1。例如:inti=10;intn;n=10*i++;//先算10*i即10*10等于100,再計(jì)算機(jī)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運(yùn)算符和表達(dá)式2.3.2關(guān)系運(yùn)算符和邏輯運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算又稱(chēng)比較運(yùn)算,用來(lái)比較兩個(gè)同類(lèi)型數(shù)據(jù)的大小。關(guān)系運(yùn)算符都是雙目運(yùn)算符。關(guān)系運(yùn)算的結(jié)果是布爾值,即true(真)或false(假)。Java提供的關(guān)系運(yùn)算符見(jiàn)表2-4表。表2-4比較運(yùn)算符運(yùn)算符名稱(chēng)例結(jié)果<小于1<3true<=小于等于1<=3true>大于1>2false>=大于等于1>=2false==等于1==2false2.3運(yùn)算符和表達(dá)式邏輯運(yùn)算符邏輯運(yùn)算又稱(chēng)布爾運(yùn)算,是對(duì)布爾值進(jìn)行運(yùn)算,其運(yùn)算結(jié)果仍為布爾值。常用的邏輯運(yùn)算符如表2-5所示。

表2-5邏輯運(yùn)算符運(yùn)算符名稱(chēng)舉例描述!非!x對(duì)x進(jìn)行取反運(yùn)算。例如,若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運(yùn)算符和表達(dá)式2.3.3位運(yùn)算符位運(yùn)算符用于對(duì)二進(jìn)制位(bit)進(jìn)行運(yùn)算。位運(yùn)算符的操作數(shù)和結(jié)果都是整數(shù)。常見(jiàn)的位運(yùn)算符如表2-6所示。表2-6位運(yùn)算符運(yùn)算符名稱(chēng)應(yīng)用舉例運(yùn)算規(guī)則~按位取反~x對(duì)x每個(gè)二進(jìn)制位取反&按位與x&y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做與運(yùn)算|按位或x|y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做或運(yùn)算^按位異或x^y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做異或運(yùn)算<<按位左移x<<a將x各二進(jìn)制位左移a位>>按位右移x>>a將x各二進(jìn)制位右移a位>>>不帶符號(hào)的按位右移x>>>a將x各二進(jìn)制位右移a位,左面的空位要補(bǔ)02.3運(yùn)算符和表達(dá)式2.3.4賦值運(yùn)算符和條件運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符用于給變量或?qū)ο筚x值?;举x值運(yùn)算符使用形式:變量或?qū)ο?表達(dá)式“=”的作用是,把右邊表達(dá)式的值賦給左邊的變量或?qū)ο?。例如:j=k=i+2;//運(yùn)算順序是,先將i加2的值賦給k,再把k的值賦給j。x=12.45;y=2*x+1;i=(int)x;條件賦值運(yùn)算符:條件賦值運(yùn)算符(?:)是三元運(yùn)算符。一般形式:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>A=5;B=A>10?100:1000; //結(jié)果B為10002.3運(yùn)算符和表達(dá)式2.3.5擴(kuò)展運(yùn)算符擴(kuò)展運(yùn)算符是在基本賦值運(yùn)算符前面加上其他運(yùn)算符后構(gòu)成的賦值運(yùn)算符。Java提供的各種擴(kuò)展運(yùn)算符見(jiàn)表2-7所示。表2-7擴(kuò)展運(yùn)算符表2-7復(fù)合賦值運(yùn)算符運(yùn)算符名稱(chēng)舉例功能+=加賦值運(yùn)算符a+=ba=a+b-=減賦值運(yùn)算符a-=ba=a-b*=乘賦值運(yùn)算符a*=ba=a*b/=除賦值運(yùn)算符a/=ba=a/b%=取余賦值運(yùn)算符a%=ba=a%b&=位與賦值運(yùn)算符a&=ba=a&b|=位或賦值運(yùn)算符a|=ba=a|b^=位異或賦值運(yùn)算符a^=ba=a^b<<=算術(shù)左移賦值運(yùn)算符a<<=ba=a<<b>>=算術(shù)右移賦值運(yùn)算符a>>=ba=a>>b2.3運(yùn)算符和表達(dá)式2.3.6其他運(yùn)算符分量運(yùn)算符(“.”):意為Sytem類(lèi)的out方法;實(shí)例運(yùn)算符(instanceof):tinstanceofTread; //用來(lái)測(cè)試t是否是Tread的一個(gè)實(shí)例內(nèi)存分配運(yùn)算符(new):t=newThread(“T1”);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論