Java语法基础课件_第1页
Java语法基础课件_第2页
Java语法基础课件_第3页
Java语法基础课件_第4页
Java语法基础课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java語法基礎

2.1識別字、分隔符號和關鍵字

2.1.1Java識別字與注釋

Java語言中,為各種變數、方法和類等起的名字稱為識別字。Java語言識別字的組成有一定的規則,如識別字必須以字母、下劃線(_)或美元符($)開頭,後面可以跟任意數目的字母、數字、下劃線(_)或美元符($)。識別字的長度沒有限制,識別字可以由編程者自己指定,但是要遵循一定的規則。

Java語言規定識別字命名要符合下列命名規則:

(1)識別字應以字母、下劃線、美元符$開頭,不能以數字開頭;(2)識別字可以由字母、下劃線、美元符或數字組合而成。在實際編程時,在命名識別字時,應該使其在一定程度上反映它所表示的變數、常量、類名和對象名的實際意義。(3)Java識別字大小寫敏感,長度無限制。(4)系統的關鍵字(又叫保留字)不能作為識別字。2.1.2Java關鍵字

Java中一些賦以特定的含義、並用做專門用途的單詞稱為關鍵字(keyword);所有Java關鍵字都是小寫的,TURE、FALSE、NULL等都不是Java關鍵字;goto和const雖然從未使用,但也作被為Java關鍵字保留。true、false、null雖用做專門用途,但不是Java關鍵字。

2.1.3Java分隔符號

Java分隔符號組成:

分號--“;”、花括弧--“{}”、空格--“”Java分隔符號作用:Java語句必須以分號作為結束標記Java允許用花括弧“{}”將一組語句括起來,形成一個語句塊(block)Java程式源代碼中各組成部分之間可以插入任意數量的空格,包括換行。2.1.3Java分隔符號Java語句塊(block)在程式設計時經常使用,主要用於下列幾個方面:(1)在定義類時,類體必須採用語句塊形式;(2)在定義方法時,方法體必須採用語句塊的形式;(3)在定義迴圈語句時,循環體可以語句塊的形式,採用將0~多條語句集合到一起,作為一個整體進行處理;(4)語句塊可以嵌套,嵌套層數無限制,以實現較複雜的功能。2.2常量和變數

2.2.1常量在程式運行過程中,其值不能被改變的量稱為常量。Java中常用的常量有不同的類型:布爾型常量、字元型常量、整數型常量、浮點型常量和字串型常量。布爾型常量包括true和false,分別代表真和假;字元型常量用一對單引號括起來的單個字元表示,如‘a’、‘1’等;整數型常量可以採用八進制、十進位和十六進製錶示。八進制的常量用以零開頭的數字表示,如011代表十進位的9;十六進制的數用以0x開頭的數字表示,如0x11代表十進位的17。

2.2.2變數

程式執行中數值可變的數據稱為變數。變數包括變數名和變數值。Java中的變數必須先聲明後使用。在使用每一個變數之前,必須清楚地為每一個變數提供一個名字和類型。這個變數的名字必須是一個合法的識別字,對應一定數量的記憶體存貯單元,其單元數視變數類型而定。變數聲明格式數據類型識別字[=確省值]例如:

inti;i=5;

或縮寫成

inti=5;使用變數的注意事項變數命名不能重複(不同條件下)Java區分大小寫變數必須先定義,再使用只有定義過,才能為其分配相應數量的存儲單元一旦定義,變數類型才能確定,才能檢查其運算的合法性2.3Java的數據類型

Java語言的數據類型如圖2-1所示。

圖2-1Java語言的數據類型

Java中定義了四類/八種基本數據類型:(1)邏輯型----boolean;(2)字元型----char;(3)整數型----byte,short,int,long;(4)

浮點數型----float,double。每種數據類型都有其固定的表達數據範圍和字段長度,不受操作系統的影響。2.3.1邏輯布爾型

使用關鍵字boolean來定義邏輯布爾型變數,boolean類型適於邏輯運算,一般用於程式流程控制。boolean類型數據只允許取值true或false,不可以0或非0的整數替代true和false。通過下麵的例子來說明boolean型變數的定義和用法。

booleanb=false; if(b==true){ //dosomething }2.3.2字元型

char型數據用來表示通常意義上“字元”字元常量是用單引號括起來的單個字元charc='A';Java字元採用Unicode編碼,每個字元占兩個位元組,因而可用十六進制編碼形式表示charc1='\u0061';Java語言中還允許使用轉義字元'\'來將其後的字元轉變為其他的含義charc2='\n';//代表換行符2.3.3整數型

(1)整數型常量Java語言中的整數型常量分為三種:十進位整數,如123,456,0。八進制整數,以0開頭,017代表十進位整數15,011代表十進位整數9。十六進制整數,以0x或0X開頭,如0x2E代表十進位整數46,0x123代表十進位整數291。(2)整數型變數Java語言中的整數型變數分為四種:byte,short,int,long。2.3.3整數型Java各整數類型有固定的表數範圍和字段長度,而不受具體操作系統的影響,以保證Java程式的可移植性:類型佔用存儲空間表數範圍byte1位元組

-128~127short2位元組

-215~215-1

int4位元組

-231~231-1long8位元組

-263~263-12.3.4浮點型(實型)

Java浮點類型有固定的表示範圍和字段長度,表2-3列出各類型所在記憶體的位元組數和表示範圍。

類型佔用存儲空間表數範圍float4位元組

-3.403E38~3.403E38double8位元組

-1.798E308~1.798E308publicclassDataType

{publicstaticvoidmain(Stringargs[]){ booleanb=true; //聲明boolean型變數並賦值 intx,y=99; //聲明int型變數

floatf=12.34f; //聲明float型變數並賦值

doubled=3.1415; //聲明double型變數並賦值

charc; //聲明char型變數

c='\u0031'; //為char型變數賦值

x=999; //為int型變數賦值System.out.println("b="+b);

…}}

Java基本數據類型變數聲明和賦值

2.3.5引用數據類型

Java語言中除8種基本數據類型以外的數據類型稱為引用類型

引用類型數據以對象的形式存在引用類型變數的值是某個對象的句柄,而不是對象本身

聲明引用類型變數時,系統只為該變數分配引用空間,並未創建一個具體的對象

Java引用類型應用舉例publicclassTestarray{publicstaticvoidmain(Stringargs[]){ int[]s; s=newint[10]; for(inti=0;i<10;i++){ s[i]=3*i+2; System.out.println(s[i]); }}}2.4運算符、運算式和語句

2.4.1運算符(按照運算符功能分)

算術運算符:+,―,*,/,%,++,――;

如:3+2;a-b;i++;--i;關係運算符:>,<,>=,<=,==,!=;

如:a>3;i==0; n!=-1;布爾邏輯運算符:!,&,|,^,&&,||;如:

b=true; !(b); b&&b;運算符

位運算符:〉〉,〈〈,〉〉〉,—,l,^,~;如:

a=10011101; a<<3=11101000;a>>3=11110011a>>>3=00010011;賦值運算符:=,擴展賦值運算符:+=,―=,*=,/=等;如:i=3; I-=2等效於i=I-2運算符條件運算符:?:;條件運算符?:為三元運算符,它的一般形式:x?y:z其中x為boolean類型運算式。其規則是:先計算x的值,若為true,則整個三元運算的結果為運算式y的值,否則整個運算結果為運算式z的值。例如:

intscore=50;Stringtype=score<60?“不及格”:“及格”;運算符其他運算符:包括分量運算符.,下標運算符[],實例運算符instanceof,記憶體分配運算符new、強制類型轉換運算符(類型)、方法調用運算符()等。Instanceof運算符應用

classInstanceOfDemo{publicstaticvoidmain(Stringargs[]){ InstanceOfDemobob=newInstanceOfDemo(); if(bobinstanceofInstanceOfDemo){System.out.println(“bob是InstanceOfDemo的實例"); }

else{ System.out.println("bob不是InstanceOfDemo的實例!"); }}}Instanceof運算符應用程式的執行結果如圖2-9所示。

2.4.2運算式

運算式是符合一定語法規則的運算符和運算元的序列

a 5.0+a (a-b)*c-4 i<30&&i%10!=0運算式的類型和值對運算式中運算元進行運算得到的結果稱為運算式的值運算式的值的數據類型即為運算式的類型運算式的運算順序首先應按照運算符的優先順序從高到低的順序進行優先順序相同的運算符按照事先約定的結合方向進行運算符的優先次序運算式的運算按照運算符的優先順序從高到低進行,同級運算符從左到右進行:優先次序運算符1[].(params)expr++expr--2++expr--expr+expr-expr~!

3new(type)expr

4* / % 5+ - 6>> >>><< 7<><=>=instanceof

8== != 9& 10^ 11| 12&& 13|| 14?: 15=+=-=*=/=%=^= 16&=|=<<=>>=>>>= 運算符的優先次序2.4.3語句和塊

●語句語句簡單地說等價於自然語言的句子。一個語句組成了一個執行的完整單元。如:weight=123.45;//賦值語句i++;//增量語句System.out.println(weight);//方法調用語句Integera=newInteger(4);//對象創建語句2.4.3語句和塊●

塊是一組處在“{”和“}之間的零條或者多條語句,它可以使用在程式的任何地方。下麵的例子給出了兩個塊,每一個塊中包含了一條語句:if(Character.isUpperCase(aChar)){System.out.println("Thecharacter"+aChar+"isuppercase.");}else{System.out.println("Thecharacter"+aChar+"islowercase.");}2.4.4控制流程語句

Java編程語言提供了幾個控制流程語句,如表所示。

表2-11Java的控制流程語句語句關鍵字

迴圈語句while,do-while,for

判斷語句if-else,switch-case

異常處理try-catch-finally,throw

跳轉語句break,continue,label:,return2.5條件語句

Java語言中有兩種類型的條件語句:if和switch。

if語句的語法格式為:if(運算式){語句塊}else{語句塊}if語句有如下三種具體形式:

形式1if(boolean類型運算式)語句A功能:當運算式值為真(true)時,執行語句A,否則跳過語句A,流程如圖所示。

運算式語句A=F=T例如:intscore=95;if(score>=90){System.out.println("優秀的感覺真好!");}if(score<60){System.out.println(“還要努力呦!”);}if語句有如下三種具體形式:形式2

if(boolean類型運算式)語句Aelse語句B

功能:運算式為true,執行語句A;運算式為false,執行語句B。其流程圖如圖2-11所示。例如:inttestscore=76;chargrade;

if(testscore>=90){grade=A;}else{grade=F;}if語句有如下三種具體形式:形式3if(boolean類型運算式1)語句1

elseif(運算式2)語句2……elseif(運算式n)語句nelse語句n其流程如圖2-13所示。if語句有如下三種具體形式:形式3流程圖if語句有如下三種具體形式:形式2

if(boolean類型運算式)語句Aelse語句B

功能:運算式為true,執行語句A;運算式為false,執行語句B。其流程圖如圖2-11所示。例如:inttestscore=76;chargrade;

if(testscore>=90){grade=A;}else{grade=F;}if語句舉例:publicclassIfElse{publicstaticvoidmain(String[]args){

inttestscore=76;chargrade;if(testscore>=90){grade='A';}elseif(testscore>=80){grade='B';}elseif(testscore>=70){grade='C';}elseif(testscore>=60){grade='D';}if語句舉例:

else{grade='F';}System.out.println("Grade="+grade);}}使用JCreator編譯執行程式運行效果如圖2-14所示。2.5.2switch語句

switch語句的使用格式是:switch(運算式){case值1:{語句塊1}break;case值2:{語句塊2}break;

…case值N:{語句塊N}break;[default:缺省語句塊]}switch語句舉例:

publicclassSwitchDemo{publicstaticvoidmain(String[]args){intmonth=8;switch(month){case1:System.out.println("January");break;case2:System.out.println("February");break;…

if語句舉例:case11:System.out.println("November");break;case12:System.out.println("December");break;}}}

這個switch語句計算它的運算式,在這個例子中是計算month的數值,然後計算適當的case語句。使用JCreator編譯執行程式運行效果如圖2-15所示。

2.6迴圈語句

:迴圈語句功能:在迴圈條件滿足的情況下,反復執行特定代碼,被反復執行的程式代碼稱為循環體。迴圈語句有下麵的四個部分組成:(1)初始化部分(init_statement)(2)迴圈條件部分(test_exp)

(3)循環體部分(body_statement)

(4)迭代部分(alter_statement)

2.6迴圈語句

Java的迴圈語句共有三種:for迴圈、while迴圈和do-while迴圈.程式流程如圖所示。2.6.1for迴圈

for語句提供了一個簡便的方法來進行迴圈。For語句的語法如下:for(運算式1;運算式2;運算式3)

{語句塊}首先計算運算式1,接著執行運算式2,若運算式2的值=true,則執行語句塊,接著計算運算式3,再判斷運算式2的值。依此重複下去,直到運算式2的值=false。for迴圈語句應用

publicclassForLoop{

publicstaticvoidmain(Stringargs[]){intresult=0;for(inti=1;i<=10;i++) {result+=i;}System.out.println("result="+result); }}for迴圈語句應用使用JCreator編譯執行程式運行效果如圖2-17所示。注意:可以在for迴圈的初始化語句中聲明一個局部變數。這個變數的作用域只是在for語句的塊中,它可以用在終止條件語句和增量運算式中。

2.6.2while迴圈

當條件保持為true的時候,你可以使用while語句持續執行語句塊。while語句的通常語法為:

while(運算式){語句塊}首先,while語句執行運算式,它將返回一個boolean數(true或者false),如果運算式返回true,while語句執行相應的語句。while語句繼續測試運算式並執行塊代碼直到運算式返回false。While語句用法舉例

publicclassWhileLoop{publicstaticvoidmain(Stringargs[]) {longresult=1; inti=1;while(i<=10){result=result*i;i++;} System.out.println("result="+result);}}While語句用法舉例該程式通過while迴圈求從1加到10的階乘。使用JCreator編譯執行程式運行效果如圖所示。

2.6.3do-while語句

Java編程語言提供了另外一個語句,它跟while語句相似,即do-while語句。Do-while的語法為:

do{語句塊}while(運算式);不象while語句,do-while語句是先執行迴圈中的語句後再計算運算式的,所以do-while語句塊至少被執行一次。do-while語句用法舉例

publicclassDoWhileLoop{publicstaticvoidmain(Stringargs[]){longresult=1;inti=1;do{result=result*i;i++;}while(i<=20); System.out.println("result="+result);}}do-while語句用法舉例

該程式使用do-while語句求從1加到20的階乘。使用JCreator編譯執行程式運行效果如圖所示。

while語句與do…while語句的區別:當第一次執行時,若運算式=0時,則while語句與do…while有所不同,do…while執行一次後面的語句,而while不執行。2.7跳轉語句

Java編程語言支持下麵的三種跳轉語句:l

break語句;l

continue語句;l

return語句。

2.7.1break語句

作用:使流程從當前的語句塊內跳轉出來,如在switch語句中,使流程跳轉出當前的switch語句,繼續執行switch語句下麵的一個語句,在迴圈語句中從某個循環體內跳出,接著執行迴圈語句下麵的語句。break語句分為下麵兩種情況:未帶標誌形式的break語句和帶標誌形式的break語句。2.7.1break語句(1)break語句用於終止某個語句塊的執行

{…… break;……}

2.7.1break語句(2)break語句出現在多層嵌套語句塊中時,可以通過標籤指明要終止的是哪一層語句塊。

label1:{…… label2: {……label3: {…… breaklabel2; …… } } }Break語句應用舉例

publicclassBreakDemo{publicstaticvoidmain(String[]args){inta[]={1,2,3,4,5,6,7,8,9,10};intsearchfor=5;inti=0;booleanfoundIt=false;for(;i<a.length;i+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论