chapterJava程序設(shè)計(jì)基礎(chǔ)PPT教學(xué)課件_第1頁
chapterJava程序設(shè)計(jì)基礎(chǔ)PPT教學(xué)課件_第2頁
chapterJava程序設(shè)計(jì)基礎(chǔ)PPT教學(xué)課件_第3頁
chapterJava程序設(shè)計(jì)基礎(chǔ)PPT教學(xué)課件_第4頁
chapterJava程序設(shè)計(jì)基礎(chǔ)PPT教學(xué)課件_第5頁
已閱讀5頁,還剩146頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、3.1 Java程序的組成程序的組成/FileStructure.javapackage myPackage;import javax.swing.JOptionPane; /導(dǎo)入類JOptionPanepublic class FileStructure public static void main( String args) JOptionPane.showMessageDialog( null, 歡迎你學(xué)習(xí)Java程序基礎(chǔ)!); System.exit(0); / 終止應(yīng)用程序 【例3-1】 Java程序的結(jié)構(gòu)包的認(rèn)識(shí)。此程序編譯后生成的字節(jié)碼文件FileStructure.class

2、放入包myPackage中第1頁/共151頁3.1 Java程序的組成程序的組成 Java源程序的3個(gè)要素(1)包聲明(package statement)-可選; (2)任意數(shù)量的導(dǎo)入語句(import statements)-可選;(3)任意數(shù)量的類定義和接口定義。 說明 3個(gè)要素只能按上述順序出現(xiàn)。 每個(gè)源文件最多只能有一個(gè)public類或接口,且此時(shí)源文件只能以這個(gè)public類或接口命名。 類或接口中包括成員(屬性和方法)及語句,組成它們的語言單位包括常量、變量、表達(dá)式、關(guān)鍵字等。第2頁/共151頁1、Java字符集字符集 大小寫的英文字母:A Z,a z 數(shù)字字符:09 特殊字符:

3、 空格 ! ! # # % % & & $ $ _(_(下劃線) +) + * * = = - - / / “ ; ; . ., ,( ) 第3頁/共151頁2、詞法記號(hào)、詞法記號(hào) 關(guān)鍵字:Java:Java預(yù)定義的單詞。 標(biāo)識(shí)符: :程序員聲明的單詞,命名程序正文中的一些實(shí)體。 如類名、變量名、方法名、對(duì)象名等。 常 量: :在程序中直接使用符號(hào)表示的數(shù)據(jù)。 (文字)包括: :數(shù)字、字符、字符串和布爾型文字。 如:123:123,4.564.56,A A,”HelloHello”,truetrue 操作符: :用于各種運(yùn)算的符號(hào),如:+,-,*等。 分隔符: :用于分隔各個(gè)詞法記號(hào)或程序正文

4、。 如:( ) , : ; 空白符: :用于指示單詞的開始和結(jié)束位置。 空格(spacespace)、制表符(TABTAB鍵產(chǎn)生的字符)、 換行符(EnterEnter鍵所產(chǎn)生的字符)和注釋的總稱。第4頁/共151頁3、關(guān)鍵字、關(guān)鍵字(Keywords)abstract break byte boolean catch caseclass char continue default double doelse extends false final float forfinally final if import implements intinterface instanceof long

5、length native newnull package private public protected returnswitch synchronized short static super try true this throw throws thread safe transient void while第5頁/共151頁4、標(biāo)識(shí)符、標(biāo)識(shí)符(identifier)JavaJava標(biāo)識(shí)符的構(gòu)成規(guī)則: : 以字母、下劃線(_)或美元符$開始。 可以由大寫字母、小寫字母、下劃線(_)、數(shù)字09組成。 不能是Java的關(guān)鍵字。 大寫字母和小寫字母代表不同的標(biāo)識(shí)符。 標(biāo)識(shí)符的長(zhǎng)度是任意的。

6、不要使用系統(tǒng)預(yù)定義的符號(hào),以免引起混淆。 例如:true、false、null代表的是特殊的值,不是關(guān)鍵字,但用戶也不要使用這些名字。標(biāo)識(shí)符的作用:用于標(biāo)記程序中的名字,類名、變量名、常量名、方法名等。第6頁/共151頁4、標(biāo)識(shí)符、標(biāo)識(shí)符identifier ,userName , User_Name, _sys_value, $change2mail, room#, class合法的標(biāo)識(shí)符非法的標(biāo)識(shí)符第7頁/共151頁4、標(biāo)識(shí)符、標(biāo)識(shí)符 Java中的命名規(guī)則 類名:使用名詞,含有大小寫字母,每個(gè)詞的首字母大寫。如HelloWorld。 方法名:使用動(dòng)詞,含有大小寫字母,首字母小寫,其余各詞的

7、首字母大寫。大寫字母做詞之間的間隔。不要使用下劃線。如getName、setAddress、search。 簡(jiǎn)單類型常量名:應(yīng)該全部為大寫字母,詞與詞之間用下劃線分隔。如PI、TIME_COMPAROR。 所有的對(duì)象、類和全局變量名:使用混合大小寫,首字母小寫,變量中不要使用下劃線。第8頁/共151頁3.2 基本數(shù)據(jù)類型、變量與常量基本數(shù)據(jù)類型、變量與常量 Java的數(shù)據(jù)類型 基本數(shù)據(jù)類型:Java語言本身定義的數(shù)據(jù)類型。 復(fù)合數(shù)據(jù)類型(引用類型):用戶根據(jù)自己的需要定義的數(shù)據(jù)類型。 第9頁/共151頁Java的數(shù)據(jù)類型的數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型類:class布爾類型:bool

8、ean數(shù)組接口:interface字符類型:char數(shù)值類型浮點(diǎn)數(shù)類型:float,double整數(shù)類型byte,short,int,long第10頁/共151頁數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字關(guān)鍵字占用位數(shù)占用位數(shù)取值范圍取值范圍布爾型布爾型boolean8true, false字符型字符型char16u 0000 u FFFF 字節(jié)型字節(jié)型byte8-128127短整型短整型short16-3276832767整型整型int32-2147483648 2147483647長(zhǎng)整型長(zhǎng)整型long64-2-63263-1浮點(diǎn)型浮點(diǎn)型float321.40129846432481707e-453.40282

9、346638528860e+38 雙精度型雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 3.2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型第11頁/共151頁第12頁/共151頁第13頁/共151頁第14頁/共151頁整型常量的類型整型常量的類型 整型常量按照所占用的內(nèi)存大小分類 整型(int)常量:占用32位。 如123,-34 長(zhǎng)整型(long)常量:占用64位,長(zhǎng)整型常量的尾部有一個(gè)大寫的L或小寫的l。 如-386L,017777l 說明:java中的整型常量默認(rèn)為int,表示long型整數(shù)后面加后綴。第15頁/共151頁2

10、. 浮點(diǎn)型常量浮點(diǎn)型常量 浮點(diǎn)型常量:表示可以含有小數(shù)部分的數(shù)值常量。 根據(jù)占用內(nèi)存長(zhǎng)度的不同分類 單精度浮點(diǎn)常量:占用32位內(nèi)存,用F、f表示。如:19.4F,3.0513E3,8701.52f 雙精度浮點(diǎn)常量:占用64位內(nèi)存,用帶D或d或不加后綴的數(shù)值表示, 如:2.433E-5D,700041.273d,3.1415。 說明:在java中的實(shí)型常量默認(rèn)為double,所以寫單精度的實(shí)數(shù)時(shí)要在數(shù)字后面寫f,如3.14f。第16頁/共151頁第17頁/共151頁3.字符常量字符常量 字符常量:用一對(duì)單引號(hào)括起的單個(gè)字符。 可見字符:a,Z,8,# 轉(zhuǎn)義字符 n t ddd : 八進(jìn)制表示一個(gè)

11、字符 uxxxx: 十六進(jìn)制無符號(hào)整數(shù),表示Unicode碼。 如: : 101101 用八進(jìn)制表示一個(gè)字符AA u0041 u0041 用UnicodeUnicode碼表示一個(gè)AA第18頁/共151頁3.字符常量字符常量三位8進(jìn)制數(shù)表示的字符 ddd 四位16進(jìn)制數(shù)表示的字符反斜線單引號(hào)雙引號(hào)回車表格符換行水平制表符tab退格含含義義 u005c u0027 u0022 u000d u000c u000a u0009 u0008對(duì)對(duì)應(yīng)應(yīng)Unicode碼碼 uxxxx ” r f n t b轉(zhuǎn)轉(zhuǎn)義義字字符符三位8進(jìn)制數(shù)表示的字符 ddd 四位16進(jìn)制數(shù)表示的字符反斜線單引號(hào)雙引號(hào)回車表格符換行

12、水平制表符tab退格含含義義 u005c u0027 u0022 u000d u000c u000a u0009 u0008對(duì)對(duì)應(yīng)應(yīng)Unicode碼碼 uxxxx ” r f n t b轉(zhuǎn)轉(zhuǎn)義義字字符符第19頁/共151頁3.字符常量字符常量 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式:一個(gè)字符用兩個(gè)字節(jié)的Unicode碼表示。 Unicode碼與ASCII的對(duì)應(yīng)關(guān)系:高2位字節(jié)00,低2位字節(jié)是ASCII值。第20頁/共151頁4.字符串常量字符串常量 字符串常量是用雙引號(hào)括起的一串字符(可以0個(gè))。 例子:Hello, My nJava, How old are you? 1234, My + name

13、注意:字符串常量是String類的對(duì)象。第21頁/共151頁5.布爾常量布爾常量 布爾常量:true(真)和false(假)。 在流控制中經(jīng)常用到布爾常量。 if (條件) 動(dòng)作1 else 動(dòng)作2 注意:Java是一種嚴(yán)格的類型語言,它不允許數(shù)值類型和布爾類型之間進(jìn)行轉(zhuǎn)換。 第22頁/共151頁3.2.3 變量變量 變量:在程序的運(yùn)行過程中數(shù)值可變的數(shù)據(jù), 用來記錄運(yùn)算中間結(jié)果或保存數(shù)據(jù)。 變量的聲明數(shù)據(jù)類型 變量名1,變量名2,變量名n;例如:int num,total;double d1;給變量分配 空間num:total:d1:4字節(jié)8字節(jié)byte,short,int,long, fl

14、oat,double,char,boolean復(fù)合類型第23頁/共151頁3.2.3 變量變量例如:int num,total;double d1;num:total:d1: 變量遵循 “先聲明后使用” 的原則。num=5;total=2*num;d1=-234.45;num=6;K=90; /Error!Num=J+90+num; /Error!510-234.456第24頁/共151頁不同類型變量占用的存儲(chǔ)空間不同類型變量占用的存儲(chǔ)空間數(shù)據(jù)類型關(guān)鍵字占用位數(shù)取值范圍布爾型boolean8true, false字符型char16u 0000 u FFFF 字節(jié)型byte8-128127短整型

15、short16-3276832767整型int32-2147483648 2147483647長(zhǎng)整型long64-2-63263-1浮點(diǎn)型float321.40129846432481707e-453.40282346638528860e+38 雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 第25頁/共151頁3.2.3 變量變量 變量的初始化 :聲明變量時(shí)指定變量初值。例如: char a= a, b; double d1, d2=0.0; boolean flag=true; byte b1=255; byte

16、b2=289; /Error!第26頁/共151頁3.2.3 變量變量 變量的動(dòng)態(tài)初始化: 在變量聲明時(shí)使用表達(dá)式初始化變量。 class DynInit public static void main(String args) double a = 3.0, b = 4.0; double c = Math.sqrt(a * a + b * b); System.out.println(Hypotenuse is: + c); c被動(dòng)態(tài)初始化第27頁/共151頁3.2.4 符號(hào)常量符號(hào)常量 符號(hào)常量:為常量起的名字。n符號(hào)常量聲明 final 數(shù)據(jù)類型 常量名=缺省值;n注意:符號(hào)常量聲明時(shí)

17、一定要賦初值,而在程序的中間不能改變其值。例如:final double PI=3.14159;float r, area;r=4.5;area=3.14159*r*rfloat r, area;r=4.5;area=PI*r*r;PI=3.1415 /錯(cuò)誤第28頁/共151頁【例例3-2】變量聲明和賦值。變量聲明和賦值。 public class UseVariables public static void main(String args) final int PRICE=30; /聲明整型常量 long l=1234l; /聲明長(zhǎng)整型變量并賦值 int num,total; /聲明整型

18、變量 float r,v,h = 3.5f; /聲明浮點(diǎn)型變量,并給h賦值 double w = 3.1415; /聲明雙精度型變量并賦值 boolean truth = true; /聲明布爾類型變量并賦值 boolean false1; /聲明布爾類型變量 char c; /聲明字符類型變量第29頁/共151頁 c =A; / 給字符類型變量賦值。 num=10; / 給整型變量賦值 total=num*PRICE; r=2.5f; / 給浮點(diǎn)型變量賦值 v=3.14159f*r*r*h; false1 = 6 7; / 給布爾類型變量賦值 String s=I am a student;

19、 /給字符串引用變量賦值 【例例3-2】變量聲明和賦值。變量聲明和賦值。第30頁/共151頁3.3 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式 運(yùn)算符: 指明對(duì)操作數(shù)的運(yùn)算方式。 按操作數(shù)的個(gè)數(shù)分: :單目運(yùn)算符( (如-a)-a),雙目運(yùn)算符( (如a+b),a+b),三目運(yùn)算符( (如e1?e2:e3)e1?e2:e3)。 按功能分類算術(shù)運(yùn)算符: +,*,/,%,+,關(guān)系運(yùn)算符: ,=,b;第31頁/共151頁3.3 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式 表達(dá)式:由運(yùn)算符、操作數(shù)(常量、變量、方法調(diào)用)和圓括號(hào)組成的式子。 算術(shù)表達(dá)式算術(shù)表達(dá)式 賦值表達(dá)式賦值表達(dá)式第32頁/共151頁3.3.1 算術(shù)運(yùn)算符與算

20、術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式 算術(shù)運(yùn)算符:對(duì)整型或?qū)嵭蛿?shù)據(jù)的運(yùn)算。 算術(shù)運(yùn)算符分類 雙目運(yùn)算符 單目運(yùn)算符第33頁/共151頁3.3.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符運(yùn)算例功能+加a + b求a與b相加的和-減a - b求a與b相減的差*乘a * b求a與b相乘的積/除a / b求a除以b的商%取余a % b求a除以b所得的余數(shù) 雙目算術(shù)運(yùn)算符第34頁/共151頁雙目算術(shù)運(yùn)算符雙目算術(shù)運(yùn)算符 注意 (1)與C不同的是,Java中的“%”兩個(gè)運(yùn)算對(duì)象可以是實(shí)數(shù)。 13%5=3 23.6%12=11.6 (2)兩個(gè)整型的數(shù)據(jù)做“/”運(yùn)算時(shí),結(jié)果是截取商的整數(shù)部分,而小數(shù)部分

21、被截?cái)唷?2/4=0 2.0/4=0.5 第35頁/共151頁算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符與算術(shù)表達(dá)式 單目運(yùn)算符:操作數(shù)只有一個(gè)。運(yùn)算符運(yùn)算例功能等價(jià)+自增a+或+aa = a + 1-自減a-或-aa = a - 1-求負(fù)數(shù)-aa = -a第36頁/共151頁單目算術(shù)運(yùn)算符單目算術(shù)運(yùn)算符例如: int x=-1; x = -x ; 前綴(+,-): 先執(zhí)行單目運(yùn)算,修改變量的值后用這個(gè) 新值參與表達(dá)式的運(yùn)算。 后綴(+, -): 先計(jì)算表達(dá)式的值,最后再修改變量的取值。 自增和自減的操作對(duì)象只能是變量。 int y=(+x)*3; int y = (x+)*3; 第37頁/共151頁例

22、如: int x = 5 ; int y = (-x) * 3; 前綴和后綴運(yùn)算符舉例前綴和后綴運(yùn)算符舉例x為4 y為12x為4 y為15替換為 int y = (x-) * 3;第38頁/共151頁【例例3-3】算術(shù)運(yùn)算符的應(yīng)用。算術(shù)運(yùn)算符的應(yīng)用。 編寫一個(gè)Java應(yīng)用程序,在對(duì)話框中輸入兩個(gè)數(shù)字,輸出其+、-、*、/、%運(yùn)算的計(jì)算結(jié)果。 利用對(duì)話框,接受用戶從鍵盤輸入的兩個(gè)數(shù)字組成的字符串。 把兩個(gè)數(shù)字字符串轉(zhuǎn)化為整型數(shù)值,并賦值給兩個(gè)整型變量a和b。 以a和b為操作數(shù)進(jìn)行算術(shù)運(yùn)算,并在對(duì)話框中輸出運(yùn)算結(jié)果。 程序運(yùn)行時(shí),可輸入任意兩個(gè)整數(shù),觀察程序運(yùn)行的不同結(jié)果。 第39頁/共151頁【

23、例例3-3】算術(shù)運(yùn)算符的應(yīng)用。算術(shù)運(yùn)算符的應(yīng)用。 利用對(duì)話框輸入數(shù)據(jù)的方法 String JOptionPane.showInputDialog(String) String:對(duì)話框中的提示文字 返回值:對(duì)話框接收的數(shù)據(jù)為字符串類型 將數(shù)字串轉(zhuǎn)化為數(shù)字的方法int Integer.parseInt(String) 在對(duì)話框中顯示數(shù)據(jù)的方法 JOptionPane.showMessageDialog(Compoment, object, String ,JOptionPane.PLAIN_MESSAGE);第40頁/共151頁【例例3-3】算術(shù)運(yùn)算符的應(yīng)用。算術(shù)運(yùn)算符的應(yīng)用。import jav

24、a.util.Scanner;public class Test public static void main(String args) System.out.println(輸入第一個(gè)數(shù));Scanner scn = new Scanner(System.in);int a= scn.nextInt();System.out.println(輸入第2個(gè)數(shù));int b= scn.nextInt();String str = a + + +b + = + (a+b) + n;str = str + a + - +b + = + (a-b) + n; str = str + a + * +b

25、+ = + (a*b) + n; str = str + a + / +b + = + (a/b) + n; str = str + a + % +b + = + (a%b) + n; System.out.println(str);第41頁/共151頁3.3.2 賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式例如,i=5 /賦值表達(dá)式的值是5 Java中賦值運(yùn)算符:=、+=、-=、*=等。 賦值表達(dá)式:帶有賦值運(yùn)算符的表達(dá)式。 賦值表達(dá)式的含義:等號(hào)右邊表達(dá)式的值賦給等號(hào)左邊的變量。 賦值表達(dá)式的類型:等號(hào)左邊變量的類型。 賦值運(yùn)算的結(jié)合性:自右向左。第42頁/共151頁第43頁/共151頁3

26、.3.2 賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符與賦值表達(dá)式運(yùn)算符例子等價(jià)于+ =x += ax = x + a- =x -= ax = x - a*=x *= ax = x * a/=x /= ax = x / a%=x %= ax = x % a 常用的復(fù)合賦值運(yùn)算符n例:a+=3 等價(jià)于 a=a+3 x*=y+8 等價(jià)于 x=x*(y+8)第44頁/共151頁第45頁/共151頁關(guān)系運(yùn)算符關(guān)系運(yùn)算符 運(yùn)算符運(yùn)算例= =等于a=b! =不等于a!=b大于ab小于a=大于等于a=b=小于等于a1) & (5-4)! false第47頁/共151頁3.3.4 邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表

27、達(dá)式 邏輯運(yùn)算符與布爾邏輯運(yùn)算符的區(qū)別 邏輯運(yùn)算符: & | 利用它們做邏輯運(yùn)算時(shí),運(yùn)算時(shí)右邊的表達(dá)式有可能被忽略(短路)而不加執(zhí)行。 布爾邏輯運(yùn)算符:&、| 、 利用它們做與、或、異或運(yùn)算時(shí),運(yùn)算符左右兩邊的表達(dá)式總會(huì)被運(yùn)算執(zhí)行,然后再對(duì)兩表達(dá)式的結(jié)果進(jìn)行與、或運(yùn)算。e1 & e2e1 & e2false第48頁/共151頁3.3.4 邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式boolean b= x y & x+ = y- ; /x為4,y為4,b為false 例如:int x = 3, y = 5 ; boolean b= x y & x+ = y- ; /x為3,y為5,b為fals

28、e 短路第49頁/共151頁3.3.4 邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式 邏輯表達(dá)式:由邏輯運(yùn)算符、關(guān)系表達(dá)式、邏輯值構(gòu)成。例如:int x=12, y=13;float a=1, b=2;x = = y & a b!(a = b)x y & (a+3) b | ! ( x = a )第50頁/共151頁3.3.6 其它運(yùn)算符其它運(yùn)算符 條件運(yùn)算符與條件表達(dá)式 e1?e2:e3 e1 為 boolean 類型 e2與e3的類型相同 執(zhí)行順序 若e1的值為true,e2的值為最終結(jié)果 若e1的值為false,e3的值為最終結(jié)果例如: y= x=0 ? x: -x max= xy ?

29、x: y第51頁/共151頁3.3.6 其它運(yùn)算符其它運(yùn)算符 括號(hào) ( ) 方括號(hào) 對(duì)象運(yùn)算符 instanceof boolean b = MyObject instanceof TextField; instanceof用來測(cè)定一個(gè)對(duì)象是否是某一個(gè)指定類或其子類的實(shí)例。第52頁/共151頁3.3.7 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 表達(dá)式的運(yùn)算次序:取決于表達(dá)式中各種運(yùn)算符的優(yōu)先級(jí)。優(yōu)先級(jí)高的運(yùn)算符先運(yùn)算,優(yōu)先級(jí)低的運(yùn)算符后運(yùn)算,同一行中的運(yùn)算符的優(yōu)先級(jí)相同。 運(yùn)算符的結(jié)合性: :決定了并列的相同運(yùn)算符的先后執(zhí)行順序。第53頁/共151頁Java運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的

30、優(yōu)先級(jí)與結(jié)合性 右左= += -= *= /= %= =賦值運(yùn)算14右左? :三目條件運(yùn)算13左右|邏輯或12左右&邏輯與11左右|按位或,布爾邏輯或10左右按位異或9左右&按位與,布爾邏輯與8左右= = !=相等關(guān)系運(yùn)算7左右 =關(guān)系運(yùn)算6左右 移位運(yùn)算5左右+ -算術(shù)加減運(yùn)算4左右* / %算術(shù)乘除運(yùn)算3右左+(正號(hào)) (負(fù)號(hào)) + - - !強(qiáng)制類型轉(zhuǎn)換符單目運(yùn)算2左右. ( )最高優(yōu)先級(jí)1結(jié)合性運(yùn)算符描述優(yōu)先級(jí)右左= += -= *= /= %= =賦值運(yùn)算14右左? :三目條件運(yùn)算13左右|邏輯或12左右&邏輯與11左右|按位或,布爾邏輯或10左右按位異或9左右&按位與,布爾邏輯與8

31、左右= = !=相等關(guān)系運(yùn)算7左右 =關(guān)系運(yùn)算6左右 移位運(yùn)算5左右+ -算術(shù)加減運(yùn)算4左右* / %算術(shù)乘除運(yùn)算3右左+(正號(hào)) (負(fù)號(hào)) + - - !強(qiáng)制類型轉(zhuǎn)換符單目運(yùn)算2左右. ( )最高優(yōu)先級(jí)1結(jié)合性運(yùn)算符描述優(yōu)先級(jí)高低第54頁/共151頁Java運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 例如 x y & ! z 相當(dāng)于 ( x y ) & ( ! z ) x + y + z 等價(jià)于 ( x + y ) + z ! !x 等價(jià)于 !( ! x ) 第55頁/共151頁第56頁/共151頁基本類型數(shù)據(jù)占有的內(nèi)存寬度基本類型數(shù)據(jù)占有的內(nèi)存寬度數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字關(guān)鍵字占用位數(shù)占用

32、位數(shù)取值范圍取值范圍布爾型布爾型boolean8true, false字符型字符型char16u 0000 u FFFF 字節(jié)型字節(jié)型byte8-128127短整型短整型short16-3276832767整型整型int32-2147483648 2147483647長(zhǎng)整型長(zhǎng)整型long64-2-63263-1浮點(diǎn)型浮點(diǎn)型float321.40129846432481707e-453.40282346638528860e+38 雙精度型雙精度型double644.94065645841246544e-3241.79769313486231570e+308d 第57頁/共151頁第58頁/共15

33、1頁強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換 從較長(zhǎng)的數(shù)據(jù)類型轉(zhuǎn)換成較短的數(shù)據(jù)類型時(shí),必須做強(qiáng)制類型轉(zhuǎn)換。 即將表達(dá)式的類型強(qiáng)制性地轉(zhuǎn)換成某一數(shù)據(jù)類型。 強(qiáng)制類型轉(zhuǎn)換的格式 (數(shù)據(jù)類型)表達(dá)式 第59頁/共151頁【例例3-6】數(shù)據(jù)轉(zhuǎn)換類型的代碼。數(shù)據(jù)轉(zhuǎn)換類型的代碼。public static void main(String args) int iVal=258;long lVal=1000;short sVal=12;byte bVal = 2;char cVal = a;float fVal = 5.67f;double dVal = .1234;lVal=iVal; dVal = fVa

34、l; System.out.println(lVal+,+dVal);/自動(dòng)轉(zhuǎn)換, lVal的值是258。dVal的值是5.67第60頁/共151頁bVal=(byte) iVal; System.out.println(bVal); /當(dāng)值258被強(qiáng)制轉(zhuǎn)換為byte變量時(shí),其結(jié)果是258除以256的余數(shù)2iVal=(int)lVal; iVal=cVal+1; System.out.println(iVal);lVal=(long) fVal;System.out.println(lVal);bVal = (byte) (bVal * 2);System.out.println(bVal);

35、 【例例3-6】數(shù)據(jù)轉(zhuǎn)換類型的代碼。數(shù)據(jù)轉(zhuǎn)換類型的代碼。/強(qiáng)制轉(zhuǎn)換/自動(dòng)轉(zhuǎn)換。 將a對(duì)應(yīng)的16 位的Unicode值97轉(zhuǎn)換為32位的int型 , 與1 相加,iVal的值是98/變量fVal 被強(qiáng)制轉(zhuǎn)換為long型,舍棄了小數(shù)部分。LVal的值是5/強(qiáng)制轉(zhuǎn)換第61頁/共151頁 bVal = bVal * 2 ; /Compiling Error. Cannot assign an int to a bytebVal = (byte) (bVal * 2) ; / /強(qiáng)制轉(zhuǎn)換【例例3-6】數(shù)據(jù)轉(zhuǎn)換類型的代碼。數(shù)據(jù)轉(zhuǎn)換類型的代碼。第62頁/共151頁第63頁/共151頁3.3.9 語句和塊語句

36、和塊 一個(gè)基本的語句以分號(hào); ;結(jié)尾。 語句 表達(dá)式語句 空語句 復(fù)合語句 聲明語句 選擇語句 循環(huán)語句 跳轉(zhuǎn)語句 方法調(diào)用語句第64頁/共151頁第65頁/共151頁語句和塊語句和塊3、復(fù)合語句(語句塊) 將多條語句用 括起來,就構(gòu)成復(fù)合語句。例如: int x, y, z; x = 5; y = 6; z = x + y;第66頁/共151頁例如,根據(jù)輸入的x 值,求出y值。 - 1 (x0)統(tǒng)計(jì)出1+2+3+n之和。sum=0; sum=sum+i; 重復(fù)做累加(i從1 到n)3.4 算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu) 算法的基本控制結(jié)構(gòu)有3種 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 三種基本結(jié)

37、構(gòu)就構(gòu)成了程序的控制流程第67頁/共151頁truefalsefalsetrue3.4 算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)第68頁/共151頁3.4 算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)與算法的基本控制結(jié)構(gòu)相關(guān)的Java語句 分支語句:if-else, switch 循環(huán)語句:while, do-while, for 與程序轉(zhuǎn)移有關(guān)的其它語句:break, continue, return第69頁/共151頁3.4.1 分支語句分支語句 分支語句提供了一種控制機(jī)制,使得程序根據(jù)相應(yīng)的條件去執(zhí)行對(duì)應(yīng)的語句。 if語句 switch語句第70頁/共151頁1. if 語句的語句的3種形式種形式(

38、1) if (表達(dá)式) 語句例:if ( x y) z=x; else z=y;(3) if (表達(dá)式1) 語句1 else if (表達(dá)式2) 語句2 else if (表達(dá)式3) 語句3 else 語句 n例: if (x0) y=1;else if (x=0) y=0;else if (x-10) y= -1; -10 x=0 & score=100)switch(score/10)case 10: case 9: grade=A; break;case 8: grade=B; break;case 7: grade=C; break;case 6: grade=D; break;def

39、ault: grade=E;System.out.println(grade=+ grade);第78頁/共151頁3.4.2 循環(huán)語句循環(huán)語句 循環(huán)結(jié)構(gòu)是在一定條件下,反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu),被反復(fù)執(zhí)行的程序被稱為循環(huán)體。 Java的循環(huán)語句共有3種 while語句 do-while語句 for語句 第79頁/共151頁1. while 語句語句while 語句形式 while (條件表達(dá)式) 語句執(zhí)行順序循環(huán)體可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句。第80頁/共151頁while 語句的使用語句的使用【例3-103-10】用whilewhile語句求1+2+1+2+100+

40、100的和。 當(dāng) i=n 時(shí) sumsum+i i+sum 0, i 1輸出sum循環(huán)前的初始化循環(huán)體循環(huán)后的處理第81頁/共151頁public class WhileTry public static void main(String args) int i,sum; sum=0; /累加和變量置0 i=1; /計(jì)數(shù)器i的初始值為1 while (i=100) sum+=i; i+; System.out.println(sum=+sum); sum=5050 如何求1+3+5+7+.+99=?如何求2+4+6+8+.+100=? while (i100) i=i+2; while (i=

41、100)i=i+2; i=2;while 語句的使用語句的使用第82頁/共151頁2. do-while 語句語句一般形式do 語句while (表達(dá)式)循環(huán)體可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句。執(zhí)行順序 與while語句的比較第83頁/共151頁public class DoWhileTry public static void main(String args) int i,sum; sum=0; /累加和變量置0 i=1; /計(jì)數(shù)器i的初始值為1 do sum+=i; i+; while (i=100); System.out.println(sum=+sum); 2.d

42、o-while 語句語句第84頁/共151頁【例3-12】輸入一個(gè)整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。 例如:12345 54321 分析: 采用不斷除以10取余數(shù)的方法,直到商數(shù)等于0為止。并規(guī)定整數(shù)n為0,輸出0。輸入n;rightDigit=n%10; 重復(fù)此過程直到n等于0為止輸出rightDigit;n=n/10;String output=;do rightDigit=n%10; output=output+rightDigit; n=n/10; while (n!=0);當(dāng)(n!=0)第85頁/共151頁import javax.swing.JOptionPane; class Reve

43、rseDigits public static void main(String args) int rightDigit; Scanner scn = new Scanner(System.in); System.out.println(輸入一個(gè)數(shù)); int n= scn.nextInt(); do rightDigit=n%10; System.out.print(rightDigit); n=n/10; while (n!=0); 【例3-12】輸入一個(gè)整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。第86頁/共151頁3. for語句語句語法形式: for (for (表達(dá)式1 1;表達(dá)式2 2;表達(dá)式

44、3) 3) 語句 為true時(shí)執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解.用于改變循環(huán)控制變量的值 執(zhí)行順序循環(huán)前先求解, 完成初始化循環(huán)變量和其他變量例: for(i=1; i=100; i+) sum+=i;第87頁/共151頁【例例3-13】用用for語句求語句求1+2+100的和。的和。如何求1+3+5+7+.+99=?如何求2+4+6+8+.+100=?public class ForTry public static void main(String args) int i,sum; sum=0; for(i=1; i=100; i+) sum+=i; System.out.println(

45、sum=+sum); 第88頁/共151頁【例3-143-14】輸入一個(gè)整數(shù),求出它的所有因子。 分析:使用窮舉法對(duì)1n的全部整數(shù)判斷,如果能整除n的均是n的因子。 public static void main(String args) Scanner scn = new Scanner(System.in); System.out.println(輸入一個(gè)數(shù)); int n= scn.nextInt(); for(int k=1; k=n; k+) if(n%k=0) System.out.print(k+ ); 第89頁/共151頁關(guān)于關(guān)于for語句的幾點(diǎn)說明語句的幾點(diǎn)說明 (1)for

46、語句的三個(gè)表達(dá)式可以為空(但分號(hào)不能省略) for (; ;) 語句; /相當(dāng)于 while (true) 語句; for (; i=100;) 語句; /相當(dāng)于 while (i=100) 語句;(2)在表達(dá)式1和表達(dá)式3的位置上可包含多個(gè)語句 sum=0; for(int i=1; i=100; i+) /在for語句中聲明循環(huán)控制變量并賦初值 sum+=i; for(sum=0, int i=1; i=100; i+) sum+=i; System.out.println(i); /!Error第90頁/共151頁 sum=0; i=1 /在for語句之前給循環(huán)控制變量賦初值 for (

47、; i100; i+) sum=sum+i; /省略表達(dá)式1 i=1 /在for語句之前給循環(huán)控制變量賦初值 for (sum=0; i100; i+) /表達(dá)式1與循環(huán)控制變量無關(guān) sum=sum+i; for (sum=0, i=1; i100; ) /省略表達(dá)式3 sum=sum+i; i+; /在循環(huán)體中改變循環(huán)控制條件 for( i=0, j=10; ij; i+, j-) / 表達(dá)式1和表達(dá)式3可以是逗號(hào)表達(dá)式 關(guān)于關(guān)于for語句的幾點(diǎn)說明語句的幾點(diǎn)說明第91頁/共151頁4、循環(huán)的嵌套、循環(huán)的嵌套 循環(huán)的嵌套:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)。 三種循環(huán)語句(while循環(huán)

48、, do-while循環(huán)和for循環(huán))它們可以相互嵌套使用。 第92頁/共151頁【例例3-15】打印出星星菱型圖案。打印出星星菱型圖案。 分析 畫出上半部分4 4行圖案: :i =1 to 4 畫出下半部分3 3行圖案: : i=3 to 1 n 畫空格:4-i 個(gè);n 畫星號(hào):2*i-1 個(gè)n 換行n 畫空格:4-i 個(gè);n 畫星號(hào):2*i-1 個(gè)n 換行for(i=1;i=4;i+) /畫上面4行 for(j=1;j=4-i;j+) System.out.print(“ ”); for(j=1;j=2*i-1;j+) System.out.print(“*”); System.out.p

49、rintln(); 第93頁/共151頁5、跳轉(zhuǎn)語句、跳轉(zhuǎn)語句 用于改變程序控制流 break語句語句 continue語句語句 return循環(huán) break體循環(huán)條件true循環(huán) continue體循環(huán)條件true第94頁/共151頁(1) continue語句語句 continue語句只能出現(xiàn)在循環(huán)體中 結(jié)束本輪循環(huán),接著開始判斷決定是否執(zhí)行下一輪循環(huán)。 continue語句的語法格式 continue 標(biāo)號(hào);第95頁/共151頁continue語句語句 不帶標(biāo)號(hào)的continue語句:終止當(dāng)前這一輪循環(huán),跳過本輪剩余的語句,直接進(jìn)入當(dāng)前循環(huán)的下一輪。 在for循環(huán)中,不帶標(biāo)號(hào)的conti

50、nue語句會(huì)跳轉(zhuǎn)至表達(dá)式3,計(jì)算修改循環(huán)變量后再判斷循環(huán)條件。 在while或do while循環(huán)中,不帶標(biāo)號(hào)的continue語句會(huì)使流程直接跳轉(zhuǎn)至條件表達(dá)式。 第96頁/共151頁【例例3-16】使用不帶標(biāo)號(hào)的使用不帶標(biāo)號(hào)的continue語句的一個(gè)程序段。語句的一個(gè)程序段。int count;for (count=1;count=10;count+) if (count=5) continue; System.out.println(count + ); System.out.println(count=+count);程序段的運(yùn)行輸出結(jié)果如下:1 2 3 4 6 7 8 9 10 co

51、unt=11 第97頁/共151頁(2)break語句語句 break語句僅出現(xiàn)在switch語句或循環(huán)體中。 作用:使程序的流程從一個(gè)語句塊內(nèi)部跳轉(zhuǎn)出來,即從switch語句的分支中跳出,或從循環(huán)體內(nèi)部跳出。 break語句的語法格式 break 標(biāo)號(hào);循環(huán) break體循環(huán)條件true第98頁/共151頁【例例3-18】使用不帶標(biāo)號(hào)的使用不帶標(biāo)號(hào)的break語句語句的一個(gè)程序段。的一個(gè)程序段。int count;for (count=1; count=10; count+) if (count=5) break; System.out.println(count + ); System.o

52、ut.println(count=+count);程序段的運(yùn)行輸出結(jié)果如下:1 2 3 4 count=5第99頁/共151頁【例例3-19】使用帶標(biāo)號(hào)的使用帶標(biāo)號(hào)的break語句的語句的一個(gè)程序段。一個(gè)程序段。 stop:for (int i=1; i=10; i+) for (int j=1; j=5; j+) if (i=5) break stop; System.out.print( * ); System.out.println(); * 第100頁/共151頁第101頁/共151頁3.5 方法方法 對(duì)象的行為在Java中由方法來實(shí)現(xiàn)。一個(gè)方法(在其它語言中也稱做函數(shù)或過程)往往完成

53、一個(gè)具體的、獨(dú)立的功能。 方法編寫好后,可以被重復(fù)地使用;使用時(shí)只關(guān)心方法的功能和使用方法,而不必關(guān)心方法功能的具體實(shí)現(xiàn),這樣可有利于代碼的重用,提高程序的開發(fā)效率。-對(duì)不同的數(shù)據(jù)進(jìn)行相同的加工處理。第102頁/共151頁3.5 方法方法 方法的聲明 方法的調(diào)用 方法的參數(shù)傳遞 方法的重載 方法的嵌套與遞歸第103頁/共151頁3.5.1 方法的聲明方法的聲明 方法的聲明格式: 返回值類型 方法名( 形式參數(shù)表 ) /方法頭 語句序列 /方法體 (1)返回值類型:規(guī)定了方法返回給調(diào)用者的結(jié)果值類型。若方法無返回值,必須寫void。方法的返回類型不是void類型,則這個(gè)方法的方法體中必須包含一個(gè)

54、 return 表達(dá)式;方法聲明和調(diào)用的例子:求階乘n!long factor(int n) long s; for (i=1; ib) return a; else return b; int x, y, z, m;x=10; y=89; z=-78;m=max(max(x,y),z);第106頁/共151頁3.5.1 方法的聲明方法的聲明(4)方法頭與方法體:方法聲明的第一行是方法頭,花括號(hào)中的語句序列構(gòu)成了方法體。 方法頭定義了方法的名稱、怎樣調(diào)用它、返回什么類型的數(shù)據(jù)。 方法體定義具體實(shí)現(xiàn)功能的代碼,對(duì)調(diào)用者而言,只需要關(guān)心方法頭,而無需關(guān)心方法體。第107頁/共151頁3.5.2 方

55、法的調(diào)用方法的調(diào)用 方法調(diào)用的格式 (1) 方法名(實(shí)參表) (2) 通過對(duì)象調(diào)用非靜態(tài)方法 對(duì)象的引用名.方法名(實(shí)參表) (3) 通過類名調(diào)用靜態(tài)方法 類名.方法名(實(shí)參表) 實(shí)參表是用逗號(hào)分開的實(shí)參。要求實(shí)參表和方法聲明中的形參表的形參類型和形參個(gè)數(shù)完全相同。 如果方法的調(diào)用無返回值(void), 方法調(diào)用可作為一條語句單獨(dú)出現(xiàn)在程序中。 System.out.println( factor(5) ); String s=“ab”; /s=new String(“ab”); System.out.println( s.length() ); JOptionPane.showInputDi

56、alog( Input a integer number:);第108頁/共151頁方法的聲明和調(diào)用例子方法的聲明和調(diào)用例子int max(int a, int b) if (ab) return a; else return b; int x, y, z, m;x=10; y=89; z=-78;m=max(x,y,x)+2; /errorlong l1=2000, l2=300;l=max(l1,l2)-5; /errorint i=max(1, 2);long max(long a, long b) if (ab) return a; else return b; int i=max(1

57、, 2);合法,系統(tǒng)會(huì)進(jìn)行隱含類型轉(zhuǎn)換第109頁/共151頁【例例3-20】輸出輸出10000之內(nèi)的所有完全數(shù)。之內(nèi)的所有完全數(shù)。 完全數(shù):所有因子和(包括1但不包括這個(gè)數(shù)本身)與其自身相同的數(shù)。例如6123,6123,則6是一個(gè)完全數(shù)。定義兩個(gè)方法: boolean isPerfect(int x):用于判斷x是否完全數(shù)。 void displayPerfect(int x):用于輸出x的因子之和的公式。 在main()方法中使用一個(gè)for循環(huán),檢查1到10000之間的所有整數(shù)是否是完全數(shù)。 第110頁/共151頁【例例3-20】輸出輸出10000之內(nèi)的所有完全數(shù)。之內(nèi)的所有完全數(shù)。publ

58、ic static void main(String args) for(int i=1; i=10000; i+)if(isPerfect(i)displayPerfect(i);static void displayPerfect(int x) /輸出x的因子之和的公式System.out.print(x+ = );for(int i=1; ix; i+)if(x%i=0) if (i!=1) System.out.print(“+”); /輸出因子前的加號(hào) System.out.print(i); System.out.println();static boolean isPerfect

59、(int x)int sum=0;for(int i=1; i1)求階乘n!的遞歸方法的聲明:long factorial(int n) /方法聲明 if(n = 1) return 1; /遞歸終結(jié)點(diǎn) else return n*factorial (n-1); /遞歸調(diào)用自身第118頁/共151頁遞歸遞歸 調(diào)用語句y=factorial(5);的執(zhí)行過程 long factorial(int n) if(n = 1) return 1; else return n*factorial (n-1); 第119頁/共151頁3.5.6 變量聲明的作用域變量聲明的作用域(1)參數(shù)聲明的作用域是聲

60、明方法所在的方法體。(2)局部變量在方法或方法中的一塊代碼中聲明,它的作用域?yàn)樗诘拇a塊(整個(gè)方法或方法中的某塊代碼)。(3)在帶標(biāo)號(hào)的break和continue語句中,標(biāo)號(hào)的作用域是帶標(biāo)號(hào)結(jié)構(gòu)范圍的語句(即帶標(biāo)號(hào)語句的主體)。(4)出現(xiàn)在for結(jié)構(gòu)頭初始化部分的局部變量,其作用域是for結(jié)構(gòu)體和結(jié)構(gòu)體頭中的其它表達(dá)式。(5)catch語句中的異常處理參數(shù)將傳遞給異常處理代碼塊,它的作用域就是catch的異常處理塊。(6)類中的方法和屬性,它們的作用域是整個(gè)類。這種作用域使一個(gè)類的方法可以用簡(jiǎn)單的名稱調(diào)用類中聲明的其它方法以及該類繼承的方法,并使之能直接訪問在該類中聲明的屬性。第120頁

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論