




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二講語言基礎1第1頁,課件共71頁,創作于2023年2月java語言的詞法1、分隔符2、注釋3、標識符4、關鍵字
2第2頁,課件共71頁,創作于2023年2月1.分隔符
Java是一種自由格式的語言,可以用任意個空格、制表符、換行符隔開每個詞。如:System.
out.
println
("Counted"+count+"chars.");
分號作為語句的結束符,每個語句必須以分號作為結束符。3第3頁,課件共71頁,創作于2023年2月2.注釋三種注釋格式://
實現單行注釋/*
這是
一段注釋,
它跨越了多個行
*//**JDK的javadoc工具用這種注釋信息能自動從程序中抽出類的公共接口形成文檔。
…
*/4第4頁,課件共71頁,創作于2023年2月3.標識符1.標識符可以由字母、數字和兩個特殊字符下劃線(_)、美元符號($)組合而成。2.標識符必須以字母、下劃線或美元符號開頭。3.Java是大小寫敏感的語言,class和Class分別代表不同的標識符。4.應該是標識符能一定程度上反映它所表示的變量、常量、對象或類的意義。例如:User_Name,_sys_val,$change為合法的標識符,而2mailroom#,class為非法的標識符。5第5頁,課件共71頁,創作于2023年2月4.關鍵字abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile關鍵字是由系統定義的一些詞,它們在程序里代表特定的含義。定義標識符時要避免使用這些詞。1.java語言中的保留字均用小寫字母表示。2.goto和const雖然在Java中不被使用,但仍是關鍵字。
6第6頁,課件共71頁,創作于2023年2月變量:是java程序中的基本存儲單元,它的定義包括變量名、變量類型和作用域幾個部分。其定義格式如下:typeSpecifiervarName=value;
如:intcount;charc='a';
變量★變量必須先說明后使用。★變量名是一個合法的標識符,以小寫字母開頭,若一個變量名由超過一個單詞所組成,則第一個單詞之后的所有單詞都以大寫字母開頭,以便于理解該變量名。7第7頁,課件共71頁,創作于2023年2月
Java的變量有兩種:局部變量、類成員變量。局部變量在使用前必須給定初值,否則,Java將不編譯,而類成員變量無此要求。
變量類型可以是基本數據類型和引用類型。變量
變量的作用域指明可訪問該變量的一段代碼,按作用域來分,變量可以有下面幾種:局部變量Localvariable類變量Membervariable方法參數Methodparameter例外處理參數Exception-handlerparameter8第8頁,課件共71頁,創作于2023年2月局部變量在方法或方法的一個塊代碼中聲明,它的作用域為它所在的代碼塊(整個方法或方法中的某塊代碼)。類變量在類中聲明,而不是在類的某個方法中聲明,它的作用域是整個類。方法參數傳遞給方法,它的作用域就是這個方法。例外處理參數傳遞給例外處理代碼,它的作用域就是例外處理部分。
變量的作用域9第9頁,課件共71頁,創作于2023年2月例1.變量的作用域
10第10頁,課件共71頁,創作于2023年2月常量是指在程序運行過程中其值不變的量。常量的表示形式:
final變量類型變量名常量finaltypeSpecifiervarName=value;
如:finalintNUM=100;11第11頁,課件共71頁,創作于2023年2月數據類型基本/簡單數據類型(primitivetype:)
字符型:char
整型:byte,short,int,long
浮點型:double,float
布爾型:boolean(取值true或false)引用/參考數據類型(referencetype)
classinterface
數組12第12頁,課件共71頁,創作于2023年2月數據類型名占用內存空間數值范圍缺省值說明byte1字節(-128)~1270整型short2字節(-32768)~327670int4字節(-2147483648)~21474836470long8字節(-9223372036854775808)~92233720368547758070float4字節(±3.4028347E+38)~(±1.40239846E-45)0.0F
浮點型double8字節(±1.79769313486231570E+308)~(±4.94065645841246544E-324)0.0Dchar2字節\u0000~\uFFFF\u0000字符型boolean1字節true或false
False布爾型
基本數據類型表注:缺省值就是默認的初值,只對成員變量有用,局部變量在使用前必須人為地給定初值13第13頁,課件共71頁,創作于2023年2月布爾型變量--boolean
布爾型數據只有兩個值true和false,且它們不對應于任何整數值。布爾型變量的定義如:
booleanb=true;簡單數據類型---布爾型數據14第14頁,課件共71頁,創作于2023年2月
1.字符型常量:字符常量是用單引號括起來的一個字符,如‘a’,‘A’Unicode代碼,用16位表示一個字符轉義字符,以反斜杠(\)開頭,將其后的字符轉變為另外的含義簡單數據類型---字符型數據15第15頁,課件共71頁,創作于2023年2月轉義字符名稱Unicode值\b退格\u0008\t跳格\u0009\n換行\u000a\r回車\u000d\”雙引號\u0022\ˊ單引號\u0027\\反斜杠\u005c簡單數據類型---字符型數據16第16頁,課件共71頁,創作于2023年2月2.字符型變量(char):它在機器中占16位,其范圍為0~65535字符型變量的定義如:charc=’a’;可以把它當作整數數據來操作。例如:
intthree=3; charone=’1’; charfour=(char)(three+one);//four=’4’簡單數據類型---字符型數據17第17頁,課件共71頁,創作于2023年2月3.字符串型常量:字符串常量是作為String類的一個對象來處理的,而不是一個基本數據.字符串常量是用雙引號(“”)括起來的一串字符,如“Thisisastring.\n”。字符串連接使用+操作符
intcount=7
例如:"Counted"+count+"chars."字符串連接使用+操作符
intx=0,y=1,z=2;
StringsString="x,y,z";
System.out.println(sString+x+y+z);
System.out.println(x+sString);簡單數據類型---字符型數據18第18頁,課件共71頁,創作于2023年2月1.整型常量:
三種表示形式:十進制整數,如123,-456,0
八進制整數,以0開頭,例055表示十進制數45。
十六進制整數,以0x或0X開頭,如0x123表示十進制數291整型常量默認為int類型,在機器中占32位對于long型值,則要在數字后加L或l,如123L表示一個長整數,在機器中占64位簡單數據類型---整型數據19第19頁,課件共71頁,創作于2023年2月簡單數據類型---整型數據2.整型變量整型變量的類型有byte,short,int,long四種數據類型所占位數數的范圍Byte8-27~27-1Short16-215~215-1Int32-231~231-1Long64-263~263-120第20頁,課件共71頁,創作于2023年2月3.整型變量的定義
例如:byteb;//指定變量b為byte型shorts;//指定變量s為short型inti;//指定變量i為int型longl;//指定變量l為long型
簡單數據類型---整型數據21第21頁,課件共71頁,創作于2023年2月浮點型數據的表示形式:
十進制數形式
由數字和小數點組成,且必須有小數點,如0.123,1.23,123.0
科學計數法形式
如:123e3或123E3,其中e或E之前必須有數字,且e或E后面的指數必須為整數。
浮點型變量有兩種類型:float和double。前者長度為32位,后者為64位。一個小數默認為double型,若想強調其是float類型,必須在數字后加f或F,如floatt=1.23f。
簡單數據類型---浮點型數據22第22頁,課件共71頁,創作于2023年2月
Java中整型、實型、字符型數據可以混合運算。
運算過程中,不同類型的數據會自動轉換為同一類型。自動類型轉換原則:
從低數據類型向高數據類型轉換即:
(byte
,char)→short→int
→long→float→double
注意:布爾型與其它基本類型之間不能轉換強制類型轉換:高級數據要轉換成低級數據類型轉換23第23頁,課件共71頁,創作于2023年2月1.自動類型轉換規則
整型,實型,字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算,轉換從低級到高級;操作數1類型操作數2類型轉換后的類型byte、short、char
int
intbyte、short、char、int
long
longbyte、short、char、int、long
float
floatbyte、short、char、int、long、float
double
double24第24頁,課件共71頁,創作于2023年2月形式為:
(類型名)表達式例如:
longl=156;
byteb;
b=(byte)l;
注意:1.一般使用強制類型轉換可能會導致數值溢出或精度的下降,應盡量避免。2.布爾型與其它基本類型之間不能轉換強制類型轉換25第25頁,課件共71頁,創作于2023年2月運算符和表達式
運算符指明對操作數所進行的運算,按功能分類:算術運算符(+,-,*,/,%,++,--)關系運算符(>,<,>=,<=,==,!=)布爾邏輯運算符(!,&&,||,|,&)位運算符(>>,<<,>>>,&,|,^,~)賦值運算符(=,及其擴展賦值運算符如+=)條件運算符(?:)其它(包括分量運算符·,下標運算符[],實例運算符instanceof,內存分配運算符new,強制類型轉換運算符(類型),方法調用運算符()等)26第26頁,課件共71頁,創作于2023年2月算術運算符算術運算符:+,―,*,/,=,++,--
Java對“+”運算符進行了擴展,使它能夠進行字符串的連接,如“abc”+“de”,得到串“abcde”
增值/減值操作符:++,--
注:i++或i--:先將值返回,再執行增1或減1的操作,
++i或--i:先執行增1或減1操作,再將值返回。
eg:inti=10;intj=++i;intk=i++;27第27頁,課件共71頁,創作于2023年2月關系運算符說明:Java中,任何數據類型的數據(包括基本類型和組合類型)都可以通過==或!=來比較是否相等(這與C、C++不同)。關系運算的結果返回true或false,而不是C、C++中的1或0。等于和不等于適用于所有內建的數據類型,但其他比較不適用于boolean類型。
28第28頁,課件共71頁,創作于2023年2月說明:檢查對象是否相等publicclassEquivalence{publicstaticvoidmain(String[]args){Integern1=newInteger(47);Integern2=newInteger(47);System.out.println(n1==n2);System.out.println(n1!=n2);}}結果:false true
關系運算符29第29頁,課件共71頁,創作于2023年2月說明:若想對比兩個對象的實際內容是否相同,使用方法equals()。例如:publicclassEqualsMethod{publicstaticvoidmain(String[]args){Integern1=newInteger(47);Integern2=newInteger(47);System.out.println(n1.equals(n2));}}關系運算符30第30頁,課件共71頁,創作于2023年2月說明:假設您創建了自己的類,結果如何?例如:classValue{ inti;}publicclassEqualsMethod2{publicstaticvoidmain(String[]args){Valuev1=newValue();Valuev2=newValue();v1.i=v2.i=100;System.out.println(v1.equals(v2));}}結果:false關系運算符31第31頁,課件共71頁,創作于2023年2月邏輯運算符
邏輯運算符AND(&&,&)、OR(||,|)、XOR(^)以及NOT(!)能生成一個布爾值(true或false)。說明:只可將AND,OR或NOT應用于布爾值。不可將一個非布爾值當作布爾值在邏輯表達式中使用例如:以下是非法的。inti=1,j=2;i&&ji||j!i以下是合法的:(i<10)&&(j<10)(i<10)&&(j<10)32第32頁,課件共71頁,創作于2023年2月說明:
對浮點數字的比較是非常嚴格的。短路運算:與“&&”,或“||”注:邏輯操作符運算時先將兩端的表達式計算出來,然后再進行邏輯運算。短路操作符在某些情況下跳過對右邊表達式的計算。1、a&&b&&c2、a||b||c3、x=y=true,a=5,b=3,c=2,d=1(x=a<b)&&(y=c<d)x,y=?邏輯運算符33第33頁,課件共71頁,創作于2023年2月publicclassMyshort{publicstaticvoidmain(Stringargs[]){intx=616; inta;booleant; a=0;t=((x==616)||(a++==1));
System.out.println("a="+a+",t="+t);
a=0;t=((x==616)|(a++==1));
System.out.println("a="+a+",t="+t);
a=0;t=((x!=616)||(++a==1));
System.out.println("a="+a+",t="+t);}}34第34頁,課件共71頁,創作于2023年2月運算符用法描述~~op按位取反&op1&op2按位與|op1|op2按位或^op1^op2按位異或>>op1>>op2op1右移op2位<<op1<<op2op1左移op2位>>>op1>>>op2op1無符號右移op2位位運算符35第35頁,課件共71頁,創作于2023年2月位運算符(>>,>>>)說明:>>:將一個數的各二進制位全部右移若干位,移到右端的低位被舍棄,最高位則移入原來高位的值
例如: a=00110111,則a>>2=00001101 b=11010011,則
b>>2=11110100>>>:一個數的各二進制位無符號右移若干位,與運算符>>相同,移出的低位被舍棄,但不同的是最高位補0。如a=00110111,則a>>>2=00001101 b=11010011,則b>>>2=0011010036第36頁,課件共71頁,創作于2023年2月賦值運算符說明:在賦值運算符兩側的類型不一致的情況下:Java允許將任何基本類型轉換為為其他任何一種基本類型。但布爾值(bollean)要除外。如果左側變量的數據類型的級別高,則右側的數據被自動轉化為與左側相同的高級的數據類型,然后賦給左側變量否則,需要使用強制類型轉換運算符類對象不能隨便進行強制類型轉換37第37頁,課件共71頁,創作于2023年2月說明:〈續〉例如:longbigValue=99L;intsquashed=bigValue;//Wrongintsquashed=(int)bigValue;//OKintsquashed=99;//defaultintegerliteraldoublez=12.414F;//12.414Fisfloat,OKfloatz1=12.414;//12.414isdouble,illegal38第38頁,課件共71頁,創作于2023年2月擴展賦值運算符運算符例子解釋+=x+=ax=x+a-=x-=ax=x-a*=x*=ax=x*a/=x/=ax=x/a%=x%=ax=x%a&=x&=ax=x&a|=x|=ax=x|a^=x^=ax=x^a<<=x<<=ax=x<<a>>=x>>=ax=x>>a<<<=x<<<=ax=x<<<a39第39頁,課件共71頁,創作于2023年2月條件運算符條件運算符
?:為三元運算符,它的一般形式為:expression?statement1:statement2例如:ratio=denom==0?0:num/denom;40第40頁,課件共71頁,創作于2023年2月優先級運算符類型1()2+、-、++、--、!、~單目運算符3*、/、%算術運算符4+、-算術運算符5<<、>>、>>>移位運算符6<、<=、>、>=關系運算符7==、!=關系運算符8&&邏輯運算符9||邏輯運算符10?:條件運算符11=、+=、-=、*=、/=、%=、^=賦值運算符12&=、|=、<<=、>>=、>>>=運算符的優先級41第41頁,課件共71頁,創作于2023年2月表達式
表達式是由操作數和運算符按一定的語法形式組成的符號序列。1.表達式的類型
表達式的類型由運算以及參與運算的操作數的類型決定,可以是簡單類型,也可以是復合類型:
布爾型表達式:x&&y||z;
整型表達式:num1+num2;2.運算符的優先次序
表達式的運算按照運算符的優先順序從高到低進行,同級運算符從左到右進行:先單運算符,而后乘除加減,然后位運算符,之后比較運算,然后賦值運算。42第42頁,課件共71頁,創作于2023年2月程序結構
Java程序通過控制語句來執行程序流,完成一定的任務。程序流由若干個語句組成,語句可以是單一的一條語句,如c=a+b,也可以是用大括號{}括起來的一個復合語句。Java中的控制語句有以下幾類:分支語句:if-else,switch循環語句:while,do-while,for與程序轉移有關的跳轉語句:break,continue,return,label例外處理語句:try-catch-finally,throw43第43頁,課件共71頁,創作于2023年2月if-else語句的語法形式:
if(布爾表達式)語句1[else語句2]若無else部分,if語句的流程如圖1所示:若有else部分,if語句的流程如圖2所示。若語句1,語句2也是if-else語句便形成嵌套if–else語句44第44頁,課件共71頁,創作于2023年2月布爾表達式語句1if的后繼語句falsetrue圖1無else部分的if語句的流程45第45頁,課件共71頁,創作于2023年2月布爾表達式if的后繼falsetrue圖2有else部分的if語句的流程語句1語句246第46頁,課件共71頁,創作于2023年2月例題:比較兩個數的大小,并按從小到大的次序輸出。publicclassCompareTwo{ publicstaticvoidmain(Stringargs[]){ doubled1=23.4; doubled2=35.1; if(d2>=d1) System.out.println(d2+">="+d1); else System.out.println(d1+">="+d2);}47第47頁,課件共71頁,創作于2023年2月
if-else語句中內嵌的語句1或語句2又是if-else語句的情況稱為if-else語句的嵌套。如:
if(布爾表達式1)語句1
elseif(布爾表達式2)語句2…
elseif(布爾表達式m)語句m
else語句nif–else語句的嵌套48第48頁,課件共71頁,創作于2023年2月
switch語句根據表達式的結果來執行多個可能操作中的一個,它的語法形式如下:switch(表達式){case常量1:語句1;[break;]case常量2:語句2;[break;]…case常量n:語句n;[break;][default:缺省處理語句;break;]
//這的break語句不必要}switch語句49第49頁,課件共71頁,創作于2023年2月表達式語句1break語句2breakbreak語句nbreak缺省處理語句后繼語句常量2defaultswitch語句的流程常量1…常量n…50第50頁,課件共71頁,創作于2023年2月表達式expression可以返回任一整型類型的值(如整型、字符型);case子句中的值必須是常量,而且所有case子句中的值應是不同的;default子句是任選的,當表達式的值與任一case子句中的值都不匹配時,程序執行default后面的語句;如果表達式的值與任一case子句中的值都不匹配且沒有default子句,則程序不做任何操作,而是直接跳出switch語句。如果將default語句放在了第一行,程序該如何執行呢?switch語句--說明51第51頁,課件共71頁,創作于2023年2月case通常與break語句聯用,以保證多路分支的正確實現。因為case子句只是起到一個標號的作用,用來查找匹配的入口并從此處開始執行,對后面的case子句不再進行匹配,而是直接執行其后的語句序列。多個case可以公用一組執行語句。
case1: case2: case3:cout<<“hello”;break;
case1,2,3:cout<<“hello”//errorswitch語句--說明52第52頁,課件共71頁,創作于2023年2月classSwitchDemo{publicstaticvoid
main(Stringargs[]){
intmonth=7;Stringseason;switch(month){case12:
case1:
case2:season=”冬季“;break;case3:case4:
case5:season=“春季”;
break;
case6:
case7:
case8:season=“夏季”;
break;case9:case10:
case11:season=”秋季”;
break;default:
season=”錯!”;}System.out.println(“月份季節”);
System.out.println(month+“
”+season);}}例用switch語句判斷一個月份屬于一年哪個季節(春、夏、秋、冬)。值為12、1和2時將都執行:season=”冬季“;break;
該程序運行后輸出:月份季節7夏季53第53頁,課件共71頁,創作于2023年2月
Java循環語句有while、do-while和for三種。while語句do-while語句for語句循環的嵌套循環語句54第54頁,課件共71頁,創作于2023年2月while語句形式如下:
while(布爾表達式)語句while語句while語句的關鍵字循環條件循環體,是一個語句,若是多個語句則應構成復合語句55第55頁,課件共71頁,創作于2023年2月classsum{publicstaticvoid
main(Stringargs[]){
intn=100;
inti=1;floats=0;
while(i<=100){s=s+(1.0f/i);
i++;}System.out.println(“s=”+s);}}
例.用while循環語句計算s=1+1/2+1/3+……+1/100。56第56頁,課件共71頁,創作于2023年2月
do-while語句的語法形式如下:
do
{語句}
while(布爾表達式A);do-while語句do語句的關鍵字循環體,是一個語句,若是多個語句則應構成復合語句循環條件程序先執行循環體中語句,然后檢查A是否滿足,滿足則執行循環體中的語句,執行完再檢查A是否滿足,如此反復執行直到A不滿足為止。57第57頁,課件共71頁,創作于2023年2月for語句的語法形式為:
for(表達式1;表達式2;表達式3)語句for語句的執行過程如下:(1)按表達式1將初值賦給循環控制變量。(2)按表達式2判斷循環是否成立,即判斷控制變量的值for語句循環體,是一個語句,若是多個語句則應構成復合語句循環條件58第58頁,課件共71頁,創作于2023年2月求解表達式1表達式2循環體求解表達式3for語句的下一語句falsetruefor語句的流程59第59頁,課件共71頁,創作于2023年2月逗號語句分隔的語句系列,被看作一個語句,這樣就可以在只能放一個語句的地方放任意多個語句,只須用逗號將它們分隔開。如:
for(i=1,j=10;i<j;i++,j--){……}表達式1、表達式2及表達式3都可以為空語句(但分號不能省略)如:
for(;;){…}使用for語句還需注意:循環內修改循環控制變量,往往會帶來預想不到的結果,因此應慎用。60第60頁,課件共71頁,創作于2023年2月
for(inti=0;i<3;i++){System.out.println(i);}intj=2;for(;j<10;){System.out.println(j);j++;}61第61頁,課件共71頁,創作于2023年2月
一個循環體內又包含另一個完整的循環結構,稱為循環的嵌套。內嵌的循環中還可以嵌套循環,這就是多重循環。上述三種循環(while循環,do-while循環和for循環)語句之間可以相互嵌套使用。循環的嵌套62第62頁,課件共71頁,創作于2023年2月
Java不支持無條件跳轉的goto語句。Java的跳轉語句有三種break語句
continue語句
return語句跳轉語句63第63頁,課件共71頁,創作于2023年2月作用:使程序的流程從一個語句塊的內部跳轉出來。1)從switch語句的分支中跳出來2)從循環體內跳出來
break語句格式:break[標號];
1)無標號:跳出當前整個語句塊
2)有標號:跳出標號指處的語句塊64第64頁,課件共71頁,創作于2023年2月
continue語句只能在循環語句中使用
格式:continue[標號];(1)無標號:用來結束所在循環語句塊的本次循環
(2)有標號:跳過標號所指的循環語句所有余下部分語句,直接轉入標號標明的循環層次。注:break使程序跳出當前循環,continue終止當前這一輪的循環,跳過本輪剩余的語句,直接進入當前循環的下一輪。continue語句65第65頁,課件共71頁,創作于2023年2月
outer:for(inti=0;i<10;i++)//外層循環
{
inner:for(intj=0;j<10;j++)//內層循環
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市興文縣2024-2025學年三下數學期末監測試題含解析
- 南京中醫藥大學《社會工作技巧工作坊人際溝通技巧》2023-2024學年第二學期期末試卷
- 湛江市高三月調研考試文綜地理試題
- 2025年度借款合同補充協議范本
- 2025租房合同模板范本
- 2025子女租賃公寓合同
- 2025家庭居室裝飾裝修工程設計施工合同范本
- 2025年高考歷史總復習考前歷史主干知識梳理提綱
- 2025濟南市勞動合同樣本新
- 2025年高考歷史階段特征總結匯編(超全面)
- FITS加氫說明書
- 半導體物理與器件物理
- 200句話搞定上海中考單詞(精華版)
- 船舶輔鍋爐的自動控制系統分析
- 新員工培訓考試【圖書專員】
- 防偽包裝技術
- 49000DWT江海直達成品油船設計
- 建設工程監理費計算器
- X互聯網公司WLAN無線網絡優化方案全解
- 裝配及檢驗規范(修訂版)【新版】
- 合成寶石特征x
評論
0/150
提交評論