第2章Java基本語法_第1頁
第2章Java基本語法_第2頁
第2章Java基本語法_第3頁
第2章Java基本語法_第4頁
第2章Java基本語法_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、南京理工大學(xué)第2章 Java基本語法 本章我們將學(xué)習(xí)Java編程語言的基本語法,包括變量、操作符、表達(dá)式、語句、字符串、數(shù)組、控制流以及如何使用幫助文檔。使用下面的編程框架: public class Test public static void main(String args) /以下添加測試代碼 . 南京理工大學(xué)2.1變量 所謂變量,就是由標(biāo)識符標(biāo)識符命名的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)。每個(gè)變量都必須聲明數(shù)據(jù)類型,變量的數(shù)據(jù)類型決定了它所能表示值的類型以及可以對其進(jìn)行什么樣的操作。變量既可以表示基本數(shù)據(jù)類型基本數(shù)據(jù)類型(如整型int、字符型char等)的數(shù)據(jù),也可以表示復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型 (對象

2、類型,如字符串)的數(shù)據(jù)。當(dāng)變量是基本數(shù)據(jù)類型基本數(shù)據(jù)類型時(shí),變量中存儲的是數(shù)據(jù)的值,而當(dāng)變量是復(fù)合數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型 (對象)類型時(shí),變量中存儲的是對象的地址,該地址指向?qū)ο笤趦?nèi)存中的位置。 197salary0X16EFemployee姓名:Tom性別:男南京理工大學(xué)2.1.1基本數(shù)據(jù)類型 2.1.1.1 整型 (byte、short、int、long)2.1.1.2 浮點(diǎn)類型(float、double) 2.1.1.3 字符類型 (char)2.1.1.4 布爾類型 (boolean)南京理工大學(xué)2.1.1.1整型 Java語言中提供了四種整型數(shù)據(jù)類型:byte、short、int和lo

3、ng類型大小/格式描述byte8位二進(jìn)制字節(jié)整型short16位二進(jìn)制短整型int32位二進(jìn)制整型long64位二進(jìn)制長整型許多語言中,基本數(shù)據(jù)類型的格式和大小與程序運(yùn)行的平臺密切相關(guān),這是產(chǎn)生程序跨平臺困難的主要原因之一。Java語言中,對每種基本數(shù)據(jù)類型都限定了固定的格式和大小,因此消除了數(shù)據(jù)類型對平臺的依賴性。南京理工大學(xué)例子 int salary=197; long salary=197L; long salary=197l; 測試: public class Test public static void main(String args) /以下添加測試代碼 int salary=

4、197; long salary=197L; (注:salary重復(fù)定義)南京理工大學(xué)2.1.1.2浮點(diǎn)類型 浮點(diǎn)類型用來表示有小數(shù)的數(shù)值。分為兩類,單精度浮點(diǎn)類型(float)和雙精度浮點(diǎn)類型(double)三個(gè)特殊值,正無窮、負(fù)無窮和非數(shù)字 Double.POSITIVE_INFINITY (Float.POSITIVE_INFINITY) Double.NEGATIVE_INFINITY (Float. NEGATIVE _INFINITY) Double.NaN (Float.NaN)類型大小/格式描述float32位 IEEE 754 規(guī)范單精度浮點(diǎn)類型double64位 IEEE

5、754 規(guī)范雙精度浮點(diǎn)類型南京理工大學(xué)例子float miles=0.9f; 或是 float miles=0.9F;float miles=0.9; /Errordouble miles=0.9; double miles=0.9D; double miles=0.9d;double weight=Double.POSITIVE_INFINITY; Float weight = Float.南京理工大學(xué)2.1.1.3字符類型 Unicode編碼采用16位的編碼方式,因此可以對65536種字符進(jìn)行編碼,能夠容納目前世界上已知的字符集。 char kind=I; /給字符變量kind賦值I ch

6、ar kind =u0049; /給字符變量kind賦I的Unicode編碼值 /等價(jià)于char kind=I; 類型大小/格式描述char16位 Unicode編碼表示單個(gè)字符南京理工大學(xué)轉(zhuǎn)義字符問題:如何在屏幕上輸出“This is a char test”(雙引號也要輸出) ?轉(zhuǎn)義字符含義Unicode編碼值b退格u0008t制表u0009n換行u000ar換行u000d雙引號u0022單引號u0027反斜杠u005c南京理工大學(xué)2.1.1.4布爾類型 布爾類型(boolean)的值只有兩個(gè)true或是false,分別表示真或是假,用于邏輯條件的判斷。 在C/C+中,數(shù)值也可以充當(dāng)布爾類

7、型的值:0相當(dāng)于false,非0值相當(dāng)于true。這就使得很容易在程序中引入bug,例如下面的if語句:if(age=0) /判斷age是否為0在C/C+中是可以編譯運(yùn)行的。但是該語句隱含了一個(gè)bug,因?yàn)椴还躠ge的實(shí)際值是什么,總是判定if語句不成立。而在Java中,該語句是不能編譯通過的,必須使用:if(age=0) /判斷age是否為0南京理工大學(xué)2.1.2變量 變量聲明 VariableType variableName; 幾條規(guī)則 (1) 變量名稱是由Unicode字母或是數(shù)字組成的不間斷序列(中間不能有空格),長度不限,并且必須以字母開頭。 (2) 變量名稱不能不能是系統(tǒng)關(guān)鍵字(

8、如int、布爾值(true 或是false)或是保留字(例如:null) (3) 在相同的作用域內(nèi)(參看下一小節(jié)變量作用域),不能重復(fù)聲明不能重復(fù)聲明同一變量名。 例如: int length; float miles; boolean flag; 南京理工大學(xué)2.1.3變量作用域 變量定義所在的位置決定了變量的作用域,根據(jù)變量定義所在的位置不同,可以分為以下4類:(1) 類成員變量(2) 局部變量(3) 方法參數(shù)變量(4) 異常處理參數(shù)變量南京理工大學(xué)南京理工大學(xué)2.1.4變量初始化 變量在聲明后,可以通過賦值語句對其進(jìn)行初始化。初始化后的變量仍然可以通過賦值語句賦以其他不同的值。 doub

9、le salary; /變量聲明salary=200d; /初始化賦值salary=400d; /重新賦值,但不是初始化變量還可以聲明及初始化同時(shí)進(jìn)行: double salary=200d; 需要注意的是,給變量賦值必須類型要匹配,即變量的數(shù)據(jù)類型要和所賦值的數(shù)據(jù)類型一致。 南京理工大學(xué)final類型 final類型的變量在初始化后就不能再重新對其賦值,常用于表示一些固定不變的值。 final double PI = 3.1415926; /聲明并初始化一個(gè)常量 PI=3.14; /出錯(cuò),不能修改已經(jīng)初始化的常量的值 滯后初始化的方法: final double A_CONSTANT; /聲

10、明,未初始化 . A_CONSTANT = 0.9; /滯后初始化 常量一旦初始化,不能對其重新賦值。習(xí)慣上,常量名中所有的字符均大寫。南京理工大學(xué)2.2操作符 一元操作符二元操作符三元操作符南京理工大學(xué)2.2.1算術(shù)操作符 操作符使用方法功能描述+x+y將x和y的值相加-x-y從x中減去y*x*y將x和y相乘/x/yx除以y%x%yx模y南京理工大學(xué)2.2.2關(guān)系與條件操作符 關(guān)系操作符使用方法功能描述 xy若x大于y,取值true;否則取值false=x=y若x大于或是等于y,取值true;否則取值falsexy若x小于y,取值true;否則取值false=xxy將x的二進(jìn)制編碼右移y位x

11、xy將x的二進(jìn)制編碼右移y位南京理工大學(xué)2.2.4其他類型操作符 操作符功能描述 聲明、創(chuàng)建數(shù)組以及訪問數(shù)組中的特定元素.訪問類成員變量、實(shí)例成員變量(參數(shù))定義、調(diào)用方法(數(shù)據(jù)類型)強(qiáng)制類型轉(zhuǎn)換new創(chuàng)建對象、數(shù)組instanceOf判斷一個(gè)對象是否為一個(gè)類的實(shí)例南京理工大學(xué)2.2.5數(shù)字類型轉(zhuǎn)換 自動(dòng)數(shù)字類型轉(zhuǎn)換 算術(shù)運(yùn)算結(jié)果數(shù)據(jù)類型操作數(shù)數(shù)據(jù)類型double至少有一個(gè)操作數(shù)是double類型float至少有一個(gè)操作數(shù)是float類型,并且沒有操作數(shù)是double類型int操作數(shù)中沒有float和double數(shù)據(jù)類型,也沒有l(wèi)ong數(shù)據(jù)類型long操作數(shù)中沒有float和double數(shù)據(jù)類

12、型,但至少有一個(gè)是long數(shù)據(jù)類型 南京理工大學(xué)強(qiáng)制類型轉(zhuǎn)換 double salary=103.34; int intSalary=(int)salary; /intSalary的值為103南京理工大學(xué)2.2.6操作符優(yōu)先級 操作符結(jié)合性 . ()從左向右! + - () new從右向左* / %從左向右+ -從左向右 從左向右 = instanceOf從左向右= !=從左向右&從左向右從左向右|從左向右&從左向右|從左向右?:從左向右= += -= *= /= %= &= |= = = =從右向左南京理工大學(xué)2.3字符串 字符串是字符組成的序列,用雙引號括起來的一個(gè)

13、字符序列構(gòu)成了字符串,如“this is a string”。字符串不是Java語言中的基本數(shù)據(jù)類型,而是對象類型(String類的實(shí)例)。String aStr1=This is a string;String aStr2=new String(This is a string);String aStr3=; /空字符串String aStr4=null; /空值null是一個(gè)特殊的空值,可以賦值給任何對象類型的變量。上面的例子中aStr3和aStr4是不同的,aStr3指向內(nèi)存中的一個(gè)字符串對象(但是該字符串對象中沒有任何字符);aStr4由于是一個(gè)空值,所以不指向任何字符串對象。字符串被

14、創(chuàng)建后,其中的內(nèi)容不能再改變。如果要改變字符串的內(nèi)容,需要重新生成新的字符串對象。南京理工大學(xué) String aStr=abc; / (1) aStr指向內(nèi)存中的一個(gè)字符串對象abc aStr=xyz; / (2) aStr指向內(nèi)存中重新生成的一個(gè)對象xyz可以使用打印語句將字符串的內(nèi)容打印出來,如:String aStr=abc;System.out.println(aStr);南京理工大學(xué)2.3.1字符串連接 操作符“+”把兩個(gè)字符串連接起來形成新的字符串 String aStr=abc+ +xyz; / aStr=abc xyzString aStr=value=+20; / aStr=

15、value=20String aStr=value=+true; / aStr=value=trueDouble d=new Double(33.34); / d是一個(gè)對象String aStr=value=+d; / aStr=value=33.34南京理工大學(xué)2.3.2修改字符串 (1) length()來取得字符串的長度 String aStr=HelloWorld; int size=aStr.length(); /size的值為10 (2) charAt(i),該方法返回一個(gè)字符值 String aStr=HelloWorld; char aChar=aStr.charAt(0);

16、/aChar= H (3)substring()方法來獲取一個(gè)字符串的子串: String aStr=HelloWorld; String subStr=aStr.substring(0,4); /subStr=Hell; 南京理工大學(xué)2.3.3判斷字符串是否相等 String aStr=HelloWorld!;String bStr=HelloWorld!;if(aStr=bStr) /錯(cuò)誤,這種判斷方式是不可靠的 .if(aStr.equals(bStr) /正確 .南京理工大學(xué)2.3.4使用幫助文檔 例子:查看String類中的charAt()方法的詳細(xì)使用信息?方法一 方法二方法三 南

17、京理工大學(xué)2.4控制流 2.4.1 if 條件語句 2.4.2 for 循環(huán)語句 2.4.3 while/do while 循環(huán)語句 2.4.4 switch 分支選擇語句 2.4.5 break、continue 南京理工大學(xué)2.4.1 if 條件語句 if(條件表達(dá)式) 語句; . 語句;if 嵌套 舉例說明南京理工大學(xué)2.4.2 for 循環(huán)語句 舉例: 將1-100中的奇數(shù)相加之和輸出將1-100中的偶數(shù)相加之和輸出南京理工大學(xué)2.4.3 while/do while 循環(huán)語句 while(條件表達(dá)式) 語句; . 語句;do 語句; . 語句; while(條件表達(dá)式); /注意,這

18、里要以分號結(jié)束 南京理工大學(xué)例:費(fèi)氏數(shù)列費(fèi)氏數(shù)列是由13世紀(jì)的意大利數(shù)學(xué)家、來自Pisa的 Leonado Fibnacci發(fā)現(xiàn)。費(fèi)氏數(shù)列是由1,1開始,之后的每一項(xiàng)等于前兩項(xiàng)之和:1,1,2,3,5,8,13,21,34,55,89,144. 。 這個(gè)數(shù)列有如下一些特性: 前2個(gè)數(shù)相加等于第3個(gè)數(shù) 前1個(gè)數(shù)除以后一個(gè)數(shù)越往后越無限接近于0.618 (黃金分割) 相鄰的兩個(gè)比率必是一個(gè)小于0.618一個(gè)大于0.618 后1個(gè)數(shù)除以前一個(gè)數(shù)越往后越無限接近于1.618 南京理工大學(xué)2.4.4 switch 分支選擇語句 switch語句從與選擇值相匹配的case標(biāo)簽處開始執(zhí)行,一直執(zhí)行到brea

19、k處(執(zhí)行break將跳出switch語句)或是switch的末尾。注意,switch只能接收整數(shù)類型的值。此外,當(dāng)傳遞進(jìn)來的值與所有的case標(biāo)簽均不匹配時(shí),如果switch中含有default標(biāo)簽,將執(zhí)行default標(biāo)簽后面的語句;如果default標(biāo)簽也不存在,那么switch中沒有任何語句得到執(zhí)行。還有一點(diǎn)需要注意的就是:如果一個(gè)case子句后面不加break,那么當(dāng)該子句執(zhí)行完畢后,下一個(gè)case子句將被繼續(xù)執(zhí)行,直至遇到break或是switch語句結(jié)束 南京理工大學(xué)2.4.5 break、continue breakfor(.) while(.) if(.) break; .

20、abc:for(.) while(.) if(.) break abc; . 南京理工大學(xué)2.5數(shù)組2.5.1一維數(shù)組 2.5.2數(shù)組拷貝 2.5.3多維數(shù)組 南京理工大學(xué)2.5.1一維數(shù)組 數(shù)組是用來存放多個(gè)同類型值的一種結(jié)構(gòu),數(shù)組本身也是對象。數(shù)組一旦創(chuàng)建完畢,就不能再改變其長度(所能存儲同類型值的個(gè)數(shù)) int anIntArray; / 聲明一個(gè)數(shù)組 int anIntArray ;訪問數(shù)組元素使用格式:數(shù)組名位置索引for(int i = 0; ianIntArray.length; i+)anIntArrayi =8-i; /數(shù)組元素賦值 System.out.print(anIn

21、tArrayi+ ); /打印數(shù)組元素如果要取得數(shù)組的長度,可以使用:數(shù)組名.length創(chuàng)建數(shù)組的同時(shí)進(jìn)行賦值:intanIntArray=8,7,6,5,4,3,2,1;南京理工大學(xué)2.5.2數(shù)組拷貝 public static void arraycopy(Object src, int srcIndex, Object dest, int destIndex, int length) System.arraycopy(src,2,dest,5,3); 南京理工大學(xué)2.5.3多維數(shù)組 數(shù)組中的數(shù)組元素可以是基本數(shù)據(jù)類型的值,也可以是對象類型的值。由于數(shù)組也是對象,因此,數(shù)組中的每個(gè)元素還可以是一個(gè)數(shù)組。int m=new int34;還可以使用下面的方式:int m=new int3; /先生成一個(gè)長度為3的數(shù)組for(int i=0;im.length;i+) mi=new int4; /每個(gè)數(shù)組元素為一個(gè)長度為4的子數(shù)組 南京理工大學(xué)不規(guī)則數(shù)組int m=new int3; /先生成一個(gè)長度為3的數(shù)組m 0=new int4; /長度為4的子數(shù)組m 1=new int2; /長度為2的子數(shù)組m 2=new int3

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論