Java初學(xué)者基礎(chǔ)語法2016_第1頁
Java初學(xué)者基礎(chǔ)語法2016_第2頁
Java初學(xué)者基礎(chǔ)語法2016_第3頁
Java初學(xué)者基礎(chǔ)語法2016_第4頁
Java初學(xué)者基礎(chǔ)語法2016_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java語言與JBuilder應(yīng)用初步

第二章Java基本語法本章要點面向?qū)ο蠡A(chǔ)變量運算符分支與循環(huán)結(jié)構(gòu)面向?qū)ο蠡A(chǔ)對象的基本特征狀態(tài):對象的狀態(tài)用一個或多個變量表示,這些變量稱為成員變量行為:對象的行為用函數(shù)或子程序?qū)崿F(xiàn),它們稱為成員函數(shù)一個對象就是一組變量和函數(shù)形成的一個軟件包面向?qū)ο蠡A(chǔ)面向?qū)ο蟪绦虻奶攸c一切都是對象:程序是對象的組合:對象有自主存儲空間:對象屬于特定的類:面向?qū)ο蠡A(chǔ)Java程序結(jié)構(gòu)對象是全局性的Java中沒有全局變量和全局函數(shù)所有的函數(shù)都屬于特定的類除少數(shù)幾種基本變量以外,Java中的所有變量類型都是類變量變量定義與變量類型變量:用于保存數(shù)據(jù)。變量在使用前需要先進(jìn)行定義和初始化doubleresValue=12.1+25.8;變量的定義:給變量設(shè)定名字和類型typename;“type”表示變量類型,“name”表示變量名變量變量類型簡單變量的類型變量變量類型的跨平臺性變量的表示范圍不隨操作系統(tǒng)變化int型:32位,范圍為-2147483648~2147483647float型,32位,IEEE754規(guī)范double型:64位,IEEE754規(guī)范字符型變量是16位Unicode字符類型,可以直接表示包括中文在內(nèi)的各國文字變量變量名變量名需要滿足的條件:變量名必須以字符開頭;必須是一串連續(xù)的Unicode字符,不能有空格,也不能有減號(否則會與減法相混淆);變量名不能是Java關(guān)鍵字,邏輯值(true或false),以及保留字null;在同一個有效區(qū)域里的變量名必須唯一,不同區(qū)域(比如不同子程序里)里的變量名可以重復(fù)。變量變量名Java關(guān)鍵字列表變量Java變量名的命名規(guī)范變量名以小寫字母開頭,類名以大寫字母開頭,常量名全部由大寫字母組成如果變量名由多個單詞組成,則將單詞連在一起寫,每個單詞的首字母大寫例:flagDone,totalNum常量:多個單詞間以下劃線連接例:MAX_INTEGER,MAX_ARRAY_NUM變量中文變量名對于16位Unicode字符,漢字與英文字母沒有區(qū)別可以在變量名中使用漢字,也可以混合使用漢字、英文字母,如:int整數(shù)=5;char漢字='文';double費用_Fee=3.3;變量常數(shù)的類型默認(rèn)的常數(shù)類型:變量指定常數(shù)的類型變量引用變量簡單變量僅能存儲簡單的數(shù)據(jù),對于復(fù)雜的數(shù)據(jù),必須用引用變量來表示引用變量里存儲的僅僅是一個指針,它指向真正的對象所在地。例如下面的例子:變量變量的初始化所謂初始化,就是給變量賦一個初值任何變量,在訪問它的值以前,必須先要給它賦一個值,否則結(jié)果是不可預(yù)料簡單變量的初始化:只需賦一個值即可,還可以在變量定義時即將其初始化intaNum=0;doubleaValue=0.0;charaChar='';變量變量的初始化Java語言對變量初始化的要求非常嚴(yán)格,如果變量存在未初始化的可能,則提示出錯,不能繼續(xù)編譯在Delphi語言中,對于變量可能未初始化的問題只會給出一個警告,還可以繼續(xù)編譯C/C++語言根本不提示此類問題,完全由程序員自己把握變量引用變量的初始化用new語句在內(nèi)存中創(chuàng)建一個對象,再將引用變量指向這個對象TheClassaClass;aClass=newTheClass();程序第一行定義了一個引用變量,aClass,此時它還只是一個空的指針;第二行語句在內(nèi)存中創(chuàng)建了一個TheClass型的對象,再將變量aClass指向該對象變量最終變量最終變量的值在初始化之后就不能再變了。最終變量相當(dāng)于常量最終變量的定義:使用final關(guān)鍵字:finalintaConstInteger=25;最終變量的定義和初始化也可以分開:finalintaConstInteger;aConstInteger=25;最終變量在定義之后應(yīng)當(dāng)盡快初始化,以免發(fā)生多次賦值而出錯運算符什么是運算符運算符對1個、2個或3個參數(shù)完成一項函數(shù)功能按參數(shù)的數(shù)量劃分:一元運算符、二元運算符和三元運算符按功能劃分:可分為5類:算術(shù)運算符、關(guān)系與條件運算符、移位與邏輯運算符、賦值運算符、其它運算符運算符運算符的形式一元運算符又可分為前綴符號和后綴符號前綴符號的運算符在運算數(shù)之前,如“++a”后綴符號的運算符在運算數(shù)之后,如“a++”二元運算符只有一種形式,就是運算符在兩個運算數(shù)之間,例如:“a+b”三元運算符只有一個:“op1?op2:op3”,它相當(dāng)于一個簡化的條件選擇語句運算符算術(shù)運算符包括基本的四則運算:加法“+”,減法“-”,乘法“*”,除法“/”,余數(shù)“%”算術(shù)運算符都支持浮點數(shù)和整數(shù)運算運算符算術(shù)運算符如果兩個運算數(shù)是相同類型的,則運算的結(jié)果也是同樣類型如果兩個運算數(shù)類型不同,Java會先將數(shù)值轉(zhuǎn)換為較精確的類型,再進(jìn)行計算,結(jié)果也是較精確的類型數(shù)據(jù)類型精度的次序:byte<short<int<long<float<double例,整數(shù)和浮點數(shù)相加,首先將整數(shù)轉(zhuǎn)換成浮點數(shù),再相加,結(jié)果也是浮點數(shù)型運算符其它的算術(shù)運算符4個一元運算符,其中“++”和“--”運算符各有前綴和后綴兩種形式運算符其它的算術(shù)運算符最容易混淆的是“op++”和“++op”,例如:inta1=10;inta2=10;intb1,b2;b1=a1++;b2=++a2;運算符關(guān)系運算符比較兩個值是否滿足某種關(guān)系。如果滿足,則返回“true”(真),否則返回“false”(假)常用的關(guān)系運算符:運算符關(guān)系運算符在Java中,“=”代表給變量賦值,而用“==”代表相等,這與傳統(tǒng)的習(xí)慣不同初學(xué)者往往習(xí)慣性地用“=”表示相等,從而出現(xiàn)“if(a=b){...}”的錯誤“!=”運算符表示“不等于”,這與C,C++語言的形式一樣。但在Basic,Pascal等語言中,用“<>”表示“不等于”。程序員應(yīng)當(dāng)注意不同語言中不等號的形式差別。運算符6種條件運算符列表運算符條件運算符“&&”和“&”的差別:“&&”只有在需要時才計算右邊op2的值,如果通過op1就能知道結(jié)果時,op2就不會計算“&”運算符會計算出兩邊op1和op2的值,再得到返回值例:if((5>7)&&(13>2))then{...}“5>7”不成立,那么“(5>7)&&(13>2)”顯然不會成立,因此不再計算“13>2”運算符負(fù)數(shù)的二進(jìn)制存儲方法在計算機(jī)里,負(fù)數(shù)一般是以二進(jìn)制“補碼”的形式存儲的補碼是以最大的二進(jìn)制數(shù)減去負(fù)數(shù)的絕對值再加1而得的例:整數(shù)“-14”,計算機(jī)中實際存儲的值是“10000000000000000-0000000000001110=1111111111110010”運算符移位與按位運算符移位和按位運算符就是對二進(jìn)制數(shù)值進(jìn)行操作的運算符移位運算符的作用是將二進(jìn)制數(shù)向左或向右移一位。下表列出全部3種移位運算符:運算符移位與按位運算符<<:左移,將二進(jìn)制數(shù)左移一位,右邊多余的數(shù)位填0,相當(dāng)于乘以2>>:有符號右移,將二進(jìn)制數(shù)右移一位,如果二進(jìn)制數(shù)的最高位為0,則左端補0,如果最高位為1,則左端補1,相當(dāng)于除以2>>>:無符號右移,將二進(jìn)制數(shù)向右移一位,左端補0,常用于直接設(shè)置二進(jìn)制位的操作運算符移位運算符常用于直接設(shè)置二進(jìn)制位,此時每一位都有其具體的含義,并不代表一個整數(shù),因此有符號右移就失去了意義,而應(yīng)當(dāng)使用無符號右移符“>>>”按位運算符:對二進(jìn)制數(shù)的每一位分別進(jìn)行邏輯操作,Java提供了4種按位運算符:運算符移位與按位運算符“&”運算符對操作數(shù)op1和op2的每一位進(jìn)行“與”操作例:10

&13,計算過程如下:

1010&1101-------------1000和1101按位與的結(jié)果是將第2位置0,其它位不變,用于將某位數(shù)字置零的操作運算符移位與按位運算符“|”運算符進(jìn)行按位的“或”運算,只要有一個操作數(shù)的對應(yīng)位為1,結(jié)果的對應(yīng)位就是1例:計算1010

|0001的結(jié)果:1010|0001-------------1011和0001按位“或”之后,右邊第1位被置“1”,其它位不變。常用于將某一位置“1”運算符移位與按位運算符“^”運算符實現(xiàn)按位異或運算,只有兩個操作數(shù)的對應(yīng)位不同,結(jié)果才為1例:1010

^1111的結(jié)果:1010^1111-------------0101與1111異或的結(jié)果是每一位都相反,常用于將某些位顛倒,其它位不變的操作運算符移位與按位運算符“~”是按位運算符中唯一的一元運算符,它的作用是將二進(jìn)制數(shù)的每一位取補,例如:

~1010-------------0101按位運算符在設(shè)置邏輯標(biāo)志時非常有用,通過按位運算符可以方便地設(shè)置、修改、訪問每個標(biāo)志位的狀態(tài)運算符賦值運算符“=”:最基本的賦值運算符,將一個變量或常量的值賦給另一個變量。例如:inta=5;//a的值為5a=8;//現(xiàn)在a的值為8快捷賦值運算符,用于同時實現(xiàn)算術(shù)、移位或按位操作與賦值操作。例如:i=i+2;可以用快捷賦值符號“+=”表示:i+=2;運算符賦值運算符快捷賦值運算符列表:運算符其它運算符其它運算符列表:運算符其它運算符“?:”,是唯一的一個三元運算符,形式為:op1?op2:op3首先判斷op1,如果op1為真,則返回op2的值;如果op1為假,則返回op3的值“(變量類型)”,將變量轉(zhuǎn)換成指定類型:floatb=3.6;intc=(int)b*2;b被強(qiáng)制轉(zhuǎn)換成整數(shù),拋棄小數(shù)部分以后的值為3,于是c=6運算符運算符的優(yōu)先級列表分支與循環(huán)結(jié)構(gòu)分支控制語句if語句:是最基本的分支控制語句,使程序根據(jù)條件有選擇地執(zhí)行語句if語句的形式如下:if(關(guān)系表達(dá)式){

語句}它的含義是:如果關(guān)系表達(dá)式為真,則執(zhí)行后面花括號里的語句,否則就不執(zhí)行花括號里的語句分支與循環(huán)結(jié)構(gòu)分支控制語句例:對于前面的例子,如果當(dāng)a不是正數(shù)時也需要在屏幕上顯示,語句如下:if(a>0){System.out.println("變量a是正數(shù)。");}else{System.out.println("變量a是負(fù)數(shù)或零。");}當(dāng)a不是正數(shù)時,執(zhí)行else內(nèi)的代碼,顯示“變量a是負(fù)數(shù)或零”分支與循環(huán)結(jié)構(gòu)分支控制語句組合的if...else語句:例,要求當(dāng)a是正數(shù)、a是負(fù)數(shù)、a是零時分別顯示:if(a>0){System.out.println("變量a是正數(shù)。");}elseif(a<0){System.out.println("變量a是負(fù)數(shù)。");}else{System.out.println("變量a是零。");}分支與循環(huán)結(jié)構(gòu)分支控制語句處理多種選擇問題的方法:利用多個if...else結(jié)構(gòu)利用switch語句處理switch語句的語法結(jié)構(gòu):switch語句將IntVar的值與每個case語句的整數(shù)值比較如果符合,就執(zhí)行這個case中的語句如果不與任何一個case符合,就執(zhí)行default中的語句switch(IntVar){case1:

語句

break;case2:

語句

break;......casen:

語句

break;default:

語句}分支與循環(huán)結(jié)構(gòu)分支控制語句switch分支的特點:每個分支均以一個break語句結(jié)尾作用是跳出switch結(jié)構(gòu)如果沒有break語句,那么程序在執(zhí)行完這個case的代碼后,會接著執(zhí)行下面一個case的代碼分支與循環(huán)結(jié)構(gòu)例題:不帶break語句的switch結(jié)構(gòu)switch(n){case1:System.out.println("n的值是1");case2:System.out.println("n的值是2");case3:System.out.println("n的值是3");case4:System.out.println("n的值是4");case5:System.out.println("n的值是5");default:System.out.println("n的值不在預(yù)設(shè)范圍內(nèi)。");}分支與循環(huán)結(jié)構(gòu)循環(huán)控制語句循環(huán)控制語句的作用是反復(fù)執(zhí)行一段代碼常用的循環(huán)結(jié)構(gòu):while循環(huán)do...while循環(huán)for循環(huán)循環(huán)結(jié)構(gòu)的組成部分:循環(huán)頭(控制語句)循環(huán)體(代碼)分支與循環(huán)結(jié)構(gòu)循環(huán)控制語句while循環(huán)while(條件表達(dá)式){

語句}當(dāng)條件表達(dá)式為真時,反復(fù)執(zhí)行花括號中的語句,直到條件為假,則退出循環(huán)例:計算1+2+3+...,一直到結(jié)果大于100,求此時加到的最大的數(shù)是多少分支與循環(huán)結(jié)構(gòu)循環(huán)控制語句例題程序如下:intsumx=0;intx=0;while(sumx<=100){x++;sumx+=x;}System.out.println("最大的加數(shù)為:"+x+"。");程序的核心是一個while循環(huán)結(jié)構(gòu),當(dāng)sumx沒有超過100的時候,反復(fù)執(zhí)行累加程序分支與循環(huán)結(jié)構(gòu)循環(huán)控制語句do...while結(jié)構(gòu),形式如下:do{

語句}while(條件表達(dá)式)while結(jié)構(gòu)和do...while結(jié)構(gòu)的差異:while循環(huán):先判斷,再執(zhí)行。如果一開始循環(huán)條件就不滿足,則循環(huán)內(nèi)的語句根本不會執(zhí)行do...while循環(huán):先執(zhí)行,后判斷。不管循環(huán)條件滿不滿足,循環(huán)內(nèi)的語句至少會執(zhí)行一遍分支與循環(huán)結(jié)構(gòu)循環(huán)控制語句wh

溫馨提示

  • 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

提交評論