付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計孟凡超哈爾濱工業(yè)大學(xué)(威海)計算機(jī)科學(xué)與技術(shù)學(xué)院
辛運幃,饒一梅,馬素霞.Java程序設(shè)計(第二版).清華大學(xué)出版社,2006.參考資料第1章概述第2章標(biāo)識符和數(shù)據(jù)類型第3章表達(dá)式和流程控制語句第4章數(shù)組、向量和字符串第5章進(jìn)一步討論對象和類第6章Java語言中的異常第7章Java的圖形用戶界面設(shè)計第8章Swing組件第9章JavaApplet第10章Java數(shù)據(jù)流第11章線程第12章Java網(wǎng)絡(luò)功能課程內(nèi)容3.1表達(dá)式3.2流控制第3章表達(dá)式與流程控制3.1表達(dá)式表達(dá)式:表達(dá)式由運算符和操作數(shù)組成,對操作數(shù)進(jìn)行運算符指定的操作,并得出一個結(jié)果。Java運算符:算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、賦值運算符、條件運算符、數(shù)組下標(biāo)運算符等。操作數(shù):常量、變量、方法調(diào)用等。3.1表達(dá)式1.操作數(shù)常量在Java語言中,主要是利用final關(guān)鍵字來進(jìn)行常量定義。當(dāng)常量被定義后,是不允許修改的。finaltype<常量名>=<常量值>[,<常量名>[=常量值]…]例如:
finaldoublePI=3.1415926;
finalStringUSERNAME=“mfc”;3.1表達(dá)式常量定義需要注意內(nèi)容:在定義常量的時候,就需要對其進(jìn)行初始化,此后,應(yīng)用程序中無法再次對這個常量進(jìn)行賦值。final關(guān)鍵字不僅可以用來修飾基本數(shù)據(jù)類型常量,還可以用來修飾對象的引用或方法。常量的命名一般采用大寫字符。3.1表達(dá)式final關(guān)鍵字與static關(guān)鍵字同時使用例如:finallongCURRENT_TIME=system.currentMillis();staticfinal
longCURRENT_TIME=system.currentMillis();不使用static修飾:如果建立常量時直接賦一個固定值,那么這個常量的值是固定不變的,即多個對象中的值也是相同的。如果建立常量時是采用函數(shù)或?qū)ο螅敲疵看谓ο髸r給其常量的初始化值就有可能不同。所以,只使用final的Java常量定義并不是恒定的。使用static修飾:在創(chuàng)建對象之前就會為這個變量在內(nèi)存中創(chuàng)建一個存儲空間,以后創(chuàng)建對象如果需要用到這個靜態(tài)變量,那么就會共享這一個變量的存儲空間。3.1表達(dá)式變量變量是存儲數(shù)據(jù)的基本單元,它可以用作表達(dá)式中的操作數(shù),變量在使用前先要說明。變量說明基本格式:type<變量名>[=<初始值>][,<變量名>[=<變量初值>]];其中,類型是指變量所屬的類型,既可以是簡單類型,如int,float等,也可以是類類型。變量說明地方:方法內(nèi)。自動變量/局部變量/臨時變量。類定義內(nèi)。類成員變量。3.1表達(dá)式變量初始化類中定義變量的初始化:創(chuàng)建一個對象后,使用new運算符分配存儲空間時,系統(tǒng)按如下表中的值進(jìn)行初始化類成員變量。類型初始值byte(byte)0short(short)0int0long0Lfloat0.0fdouble0.0char‘\u0000’(null)booleanfalse所有引用類型null3.1表達(dá)式變量作用域類中定義成員變量的作用域是整個類。方法中定義的局部變量的作用域是從該變量的說明處開始到包含該說明的語句塊結(jié)束處,塊外是不可使用的。塊內(nèi)說明的變量將屏蔽其所在類定義的同名變量。但是同一塊中如果定義兩個同名變量則將引起沖突。3.1表達(dá)式3.1表達(dá)式2.運算符算術(shù)運算符加(+)、減()、乘(*)、除(/)、取模(%),完成整型或浮點型數(shù)據(jù)的算術(shù)運算。++、
,分別表示加1和減1操作。++i和i++的執(zhí)行順序不同,++i在使用之前加1,i++先使用再加1。i和i的情況類似。例如:5/2//結(jié)果是25%2//結(jié)果是110.5/2//結(jié)果是5.2510.5%2//結(jié)果是0.53.1表達(dá)式inti=0;intj=++i;System.out.println(“i=”+i+”;j=”+j);i=1;j=1inti=0;intj=i++;System.out.println(“i=”+i+”;j=”+j);i=1;j=0inti=0;intj=--i;System.out.println(“i=”+i+”;j=”+j);i=-1;j=-1inti=0;intj=i--;System.out.println(“i=”+i+”;j=”+j);i=-1;j=03.1表達(dá)式關(guān)系運算符關(guān)系運算符是二元運算符,用來比較兩個值,其結(jié)果是一個邏輯值。包括大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)6種。名稱運算符運算規(guī)則運算對象表達(dá)式實例運算結(jié)果小于<滿足則為真,不滿足則為假整型、浮點型、字符型2<3true小于等于<=6<=6true大于>‘a(chǎn)’>’b’false大于等于>=7.8>=5.6true等于==9==9true不等于!=8!=8false3.1表達(dá)式邏輯運算符邏輯運算符用來連接關(guān)系表達(dá)式,對關(guān)系表達(dá)式的值進(jìn)行邏輯運算,因此邏輯運算符的運算對象必須是邏輯型數(shù)據(jù),其表達(dá)式的運行結(jié)果也是邏輯型數(shù)據(jù)。包括邏輯與(&&)、邏輯或(||)和邏輯非(!)三種,&&和||是二元運算符,!是一元運算符。對象1
(a)對象2(b)!aa&&ba||bfalsefalsetruefalsefalsefalsetruetruefalsetruetruefalsefalsefalsetruetruetruefalsetruetrue3.1表達(dá)式例,要判斷一年(year)是否為閏年,其條件是:能被4整除但不能被100整除,或者能被400整除。邏輯表達(dá)式:(year%4==0&&year%100!=0)||year%400==03.1表達(dá)式位運算符位運算符用來對二進(jìn)制位進(jìn)行操作,包括按位取反()、按位與(&)、按位或(|)、異或(^)、右移(>>)、左移(<<)及無符號右移(>>>),位運算只能對整型和字符型數(shù)據(jù)進(jìn)行操作。byteb=30;system.out.println(~b);-31byteb=-30;system.out.println(~b);29bytea=24,b=13;system.out.println(a&b);8bytea=24,b=-13;system.out.println(a&b);163.1表達(dá)式Java中二進(jìn)制數(shù)表示Java中使用補碼來表示二進(jìn)制數(shù),在補碼表示中最高位為符號位,正數(shù)的符號為是0,負(fù)數(shù)的符號位是1。正數(shù)的補碼:與原碼相同。負(fù)數(shù)的補碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反,然后整個數(shù)加1。例如30(byte型)的補碼:00011110。-30(byte型)的補碼是11100010
:因為是負(fù)數(shù),則符號位為“1”,其它位為30的原碼0011110,整個為10011110;10011110按位取反為11100001;再加1,則-30的補碼為11100010。3.1表達(dá)式已知一個數(shù)的補碼,如何求原碼?如果補碼的符號位為”0”,表示是一個正數(shù),所以補碼就是該數(shù)的原碼。如果補碼的符號位為”1”,表示是一個負(fù)數(shù),求原碼的操作可以是:符號位為1,其余各位取反,然后再整個數(shù)加1。例如,一個數(shù)的補碼為11100010,則原碼為10011110(-30):因為符號位為”1”,表示是一個負(fù)數(shù),所以該位不變,仍為”1”,其余7位1100010取反后為0011101,再加1,所以是10011110。1110001010011101100111103.1表達(dá)式~-30的運算過程:-30的補碼:11100010按位取反:00011101對應(yīng)的十進(jìn)制數(shù):2924&-13的運算過程:24的補碼:00011000-13的補碼:11110011按位與:00010000對應(yīng)的十進(jìn)制數(shù):163.1表達(dá)式24^-13的運算過程:24的補碼:00011000-13的補碼:11110011異或:11101011對應(yīng)的十進(jìn)制數(shù):-21對應(yīng)的原碼:10010101-30>>1的運算過程:-30的補碼:11100010右移1位:11110001對應(yīng)的原碼:10001111對應(yīng)的十進(jìn)制數(shù):-15-30<<1的運算過程:-30的補碼:11100010左移1位:11000100對應(yīng)的原碼:10111100對應(yīng)的十進(jìn)制數(shù):-603.1表達(dá)式其它運算符擴(kuò)展賦值運算符:擴(kuò)展賦值運算符是在賦值號(=)前面再加上其它運算符,是對表達(dá)式的一種簡寫形式。“+=”.a+=4等價于a=a+4?!?=”.a-=4等價于a=a-4?!?=”.
a*=4等價于a=a*4?!?=”.a/=4等價于a=a/4。“%=”.a%=4等價于a=a%4。“&=”.a&=4等價于a=a&4。“|=”.a|=4等價于a=a|4。“^=”.a^=4等價于a=a^4?!?gt;>=”.a>>=4等價于a=a>>4?!?lt;<=”.a<<=4等價于a=a<<4。“>>>=”.a>>>=等價于a>>>=4。賦值語句:var=varopexpression(其中,var是變量,op是算術(shù)運算符或位運算符,expression為表達(dá)式)可以表示為varop=expression3.1表達(dá)式條件運算符(?=):是三元運算符,它一般形式為:
表達(dá)式?語句1:語句2;表達(dá)式得到一個邏輯值,根據(jù)該值得真假決定執(zhí)行什么操作。如果為真(true),執(zhí)行語句1,否則執(zhí)行語句2(語句1和語句2需要返回相同的類型,且不能是void)。例如:int
a=100,b=90;System.out.println(a>b?(a+=10);(b+=10));110點運算符(.)實例運算符(instanceof)new運算符數(shù)組下標(biāo)運算符([])3.1表達(dá)式運算符的優(yōu)先級高低.,[],()++,--,!,~,instanceofnew(type)*,/,%+,->>,>>>,<<<,>,<=,<===,!=&^|&&||?==,+=,-=,*=,/=,%=,^=&=,|=,<<=,>>=,>>>=3.1表達(dá)式3.表達(dá)的提升和轉(zhuǎn)換轉(zhuǎn)換原則:變量和表達(dá)式可以轉(zhuǎn)換為更一般的形式,而不能轉(zhuǎn)換為更受限的形式。如果變量類型至少與表達(dá)式類型一樣(即位數(shù)一樣多),就可以認(rèn)為表達(dá)式是賦值相容的。3.1表達(dá)式4.數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)包:java.math;math.sin().math.cos().math.tan().math.round().四舍五入運算。math.ceil(i)。大于等于i的最小整數(shù)。math.floor(i).小于等于i的最大整數(shù)。math.sqrt(i).i的平方根。math.exp(i).e的指數(shù)ei。math.log(i).10的對數(shù)logi。math.max(a,b).返回a和b中的最大者。math.min(a,b).返回a和b中的最小者。math.random().返回0.0到1.0之間雙精度的一個隨機(jī)數(shù)。3.2控制流語句:語句是Java的最小執(zhí)行單位,語句間以分號(;)作為分隔符。語句分為簡單語句和復(fù)合語句,簡單語句就是通常意義下的一條語句,即單語句;而復(fù)合語句是一對花括號“{”和“}”括起來的語句組,也稱為塊,塊后沒有分號。常見語句:表達(dá)式語句塊分支語句循環(huán)語句3.2控制流1.表達(dá)式語句在Java程序中,表達(dá)式可以當(dāng)作一個值,有的表達(dá)式也可以當(dāng)作語句。customer=newCustomer();point=newPoint();x=12;x++;System.out.println(“helloworld!”);3.2控制流2.塊塊是一對花括號“{”和“}”括起來的語句組。{}{
Point
point=newPoint();intx=point.x;}3.2控制流3.分支語句分支語句根據(jù)一定的條件,動態(tài)決定程序的流程方向,從程序的多個分支中選擇一個或幾個來執(zhí)行。分支語句有兩種:if語句和switch語句。if語句基本if語句if(表達(dá)式){語句塊;}邏輯表達(dá)式語句或語句塊truefalse3.2控制流if-elseif(表達(dá)式){語句塊1;}else{語句塊2;}邏輯表達(dá)式語句1或語句塊1語句2或語句塊2truefalse3.2控制流if(表達(dá)式1){語句塊1;}elseif(表達(dá)式2){語句塊2;}…elseif(表達(dá)式n){語句塊n;}[else{語句塊n+1;}]if-elseif邏輯表達(dá)式1語句1或語句塊1truefalse語句2或語句塊2邏輯表達(dá)式2邏輯表達(dá)式n語句n或語句塊n語句塊n+1truetruefalsefalse3.2控制流例:用if-else
if語句實現(xiàn)符號函數(shù)3.2控制流表達(dá)式的計算結(jié)果必須是int型或字符型,即int型賦值相容的。Java規(guī)定switch語句不允許使用浮點型或long型表達(dá)式。c1,c2,…,ck是int型或字符型常量,default子句是可選的,最后一個break語句可以不寫。switch(表達(dá)式){
case
c1:
語句塊1;
break;
case
c2:
語句塊2;
break;…
case
cn:
語句塊n;
break;[default:
語句塊n+1;]}switch語句3.2控制流數(shù)值1語句組1truefalse語句組2數(shù)值2數(shù)值n語句組ndefault:語句組n+1truetruefalsefalsebreak;break;break;……switch語句流程圖3.2控制流例:編制一個程序,輸入月份/年份,輸出該月的天數(shù)。3.2控制流4.循環(huán)語句在程序設(shè)計過程中,當(dāng)在滿足一定條件的前提下需要反復(fù)執(zhí)行一些相同的操作時,使用循環(huán)語句。Java提供三種循環(huán)語句:for語句、while語句和do語句。循環(huán)結(jié)構(gòu)包含內(nèi)容:賦初值部分循環(huán)體部分循環(huán)變量增減方式部分判斷條件3.2控制流for循環(huán)語句
for循環(huán)語句適用于明確知道重復(fù)執(zhí)行次數(shù)情況。for(賦初值;判斷條件;循環(huán)控制變量增減方式){
(循環(huán)體)語句塊}for循環(huán)的執(zhí)行流程:1)第一次進(jìn)入for循環(huán)時,對循環(huán)控制變量賦初值;2)根據(jù)判斷條件的內(nèi)容檢查是否要繼續(xù)執(zhí)行循環(huán),如果判斷條件為真,繼續(xù)執(zhí)行循環(huán),如果條件為假,則結(jié)束循環(huán)執(zhí)行下面的語句。3)執(zhí)行完循環(huán)體內(nèi)的語句后,系統(tǒng)會根據(jù)循環(huán)控制變量的增減方式,更改循環(huán)控制變量的值,再回到步驟2重新判斷是否繼續(xù)執(zhí)行循環(huán)。賦循環(huán)控制變量初值判斷條件循環(huán)體循環(huán)控制變量增(減)值truefalse3.2控制流例:利用for語句計算從1累加到100的結(jié)果。for循環(huán)語句格式中的三項內(nèi)容可以視不同情況缺省一個、兩個、甚至全缺。3.2控制流例:利用for循環(huán)輸出斐波那契前n項。3.2控制流while循環(huán)結(jié)構(gòu)語句在不知道一個循環(huán)體會被重復(fù)執(zhí)行多少次的情況下,可以選擇while循環(huán)結(jié)構(gòu)語句。while語句的語法格式:while(判斷條件){
(循環(huán)體)語句塊;循環(huán)控制變量增(減)值}while初始化判斷條件循環(huán)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030氫能產(chǎn)業(yè)企業(yè)發(fā)展與政策影響分析研究報告
- 2025-2030歐盟數(shù)字經(jīng)濟(jì)政策分析及企業(yè)應(yīng)用報告
- 2025-2030歐洲零售連鎖行業(yè)市場現(xiàn)狀分析競爭格局投資價值評估發(fā)展規(guī)劃報告
- 2025-2030歐洲軌道交通設(shè)備制造業(yè)市場深度剖析及未來發(fā)展趨勢與市場前景研究文獻(xiàn)
- 2025-2030歐洲紡織機(jī)械行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030歐洲機(jī)械制造行業(yè)市場開發(fā)競爭評估投資趨勢規(guī)劃研究報告
- 2025-2030歐洲智能車燈制造行業(yè)供需調(diào)研投資評估規(guī)劃研究報告
- 2025-2030歐洲新能源車輛行業(yè)供需現(xiàn)狀態(tài)勢分析投資價值規(guī)劃研究
- 2025-2030歐洲新能源汽車電機(jī)驅(qū)動系統(tǒng)行業(yè)市場深度調(diào)研及發(fā)展趨勢和前景預(yù)測研究報告
- 2025-2030歐洲數(shù)控系統(tǒng)行業(yè)市場發(fā)展現(xiàn)狀及投資機(jī)會分析規(guī)劃報告
- 2025年三級教育安全考試試題及答案
- GB/T 38235-2025工程用鋼絲環(huán)形網(wǎng)
- 西醫(yī)基礎(chǔ)知識培訓(xùn)課件
- 《電磁發(fā)射滅火炮技術(shù)規(guī)范》
- 風(fēng)機(jī)攀爬安全培訓(xùn)課件
- 陜西西安遠(yuǎn)東二中學(xué)2026屆九年級數(shù)學(xué)第一學(xué)期期末考試模擬試題含解析
- 以人工智能賦能新質(zhì)生產(chǎn)力發(fā)展
- 資產(chǎn)管理部2025年工作總結(jié)與2025年工作計劃
- 公建工程交付指南(第四冊)
- 2025年貴州省法院書記員招聘筆試題庫附答案
- 過氧化氫氣體低溫等離子滅菌測試題(附答案)
評論
0/150
提交評論