Java_02結(jié)構(gòu)化程序設(shè)計_第1頁
Java_02結(jié)構(gòu)化程序設(shè)計_第2頁
Java_02結(jié)構(gòu)化程序設(shè)計_第3頁
Java_02結(jié)構(gòu)化程序設(shè)計_第4頁
Java_02結(jié)構(gòu)化程序設(shè)計_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第二章第二章 基本語法基本語法標識符和關(guān)鍵字數(shù)據(jù)類型常量與變量運算符流程控制2Java基礎(chǔ)基礎(chǔ)Java代碼的位置代碼的位置 Java中的所有程序代碼都必須存在于一個類中。中的所有程序代碼都必須存在于一個類中。Java嚴格區(qū)分大小寫嚴格區(qū)分大小寫Java是一種自由格式的語言是一種自由格式的語言 一條語句可以寫在若干行上,但一句連續(xù)的字符串一條語句可以寫在若干行上,但一句連續(xù)的字符串不能分開在兩行中。不能分開在兩行中。Java程序的三種注釋方式程序的三種注釋方式單行注釋、多行注釋、文檔注釋單行注釋、多行注釋、文檔注釋3Java基礎(chǔ)基礎(chǔ)單行注釋單行注釋 int c = 10; /定義一個整型定義一

2、個整型多行注釋多行注釋 /* int c = 10; int x = 5; */文檔注釋文檔注釋 /* * . * . */4Java基礎(chǔ)基礎(chǔ)publicclassTeacher/*這是方法這是方法listen*paramsum學(xué)生數(shù)量學(xué)生數(shù)量*paramjian剩余剩余*returnlisten的數(shù)量的數(shù)量*/publicintlisten(intsun,intjian)文檔注釋文檔注釋5標識符和關(guān)鍵字標識符和關(guān)鍵字標識符規(guī)則:標識符規(guī)則:1. 用于變量、類、方法、包的名字;2. 以一個字母、下劃線(_)、$符開頭,隨之可以是數(shù)字;3. 大小寫敏感,無最大長度。測試測試:username、c

3、lass、_userName、9username、$username、Hello World、identifier、_sys_var16標識符和關(guān)鍵字標識符和關(guān)鍵字“見其名知其義見其名知其義”(1)標識符可以由幾個單詞連接而成;)標識符可以由幾個單詞連接而成;(2)類名:)類名:StudentInfo、BookStore(3)方法名、變量名:)方法名、變量名:studName、getStudName(4)常量名:)常量名:MAX_VALUE、PIE(5)包名:)包名:com、utility7數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型布爾型(boolean)字符型(char)數(shù)值型類(cl

4、ass)接口(interface)數(shù)組整數(shù)類型(byte,short,int,long)浮點類型(float,double)8基本數(shù)據(jù)類型基本數(shù)據(jù)類型注意各基本數(shù)據(jù)類型的大小和取值范圍注意各基本數(shù)據(jù)類型的大小和取值范圍(1)整型:)整型:long x = 98765432100; (2)浮點型:)浮點型:float f = 3.5;(3)字符型:用)字符型:用2個字節(jié)表示一個字符;個字節(jié)表示一個字符;(4)布爾型:只有)布爾型:只有true和和false,不能用整數(shù)表示。,不能用整數(shù)表示。long x = 98765432100L;float f = 3.5f;/默認為默認為int型型/默認為

5、默認為double型型9引用數(shù)據(jù)類型引用數(shù)據(jù)類型引用數(shù)據(jù)類型包括類引用、接口引用以及數(shù)組引用。Object object = null;/ 聲明一個Object類的引用變量List list = null;/ 聲明一個List接口的引用變量int months = null;/ 聲明一個int型數(shù)組的引用變量說明:說明:將引用數(shù)據(jù)類型的常量或變量初始化為將引用數(shù)據(jù)類型的常量或變量初始化為null時時,表示引用數(shù)據(jù)類型的常量或變量不引用任何對象。,表示引用數(shù)據(jù)類型的常量或變量不引用任何對象。10基本類型與引用類型的區(qū)別基本類型與引用類型的區(qū)別組成基本數(shù)據(jù)類型:只包含數(shù)值。引用數(shù)據(jù)類型:不僅包含數(shù)

6、值,還包含對數(shù)值的操作。Java虛擬機處理方式 基本數(shù)據(jù)類型:根據(jù)變量的實際類型為其分配內(nèi)存空間。引用數(shù)據(jù)類型:在內(nèi)存空間不是存儲引用對象的數(shù)據(jù),而是對象在堆內(nèi)存中存放的地址。11例如創(chuàng)建一個圖書類例如創(chuàng)建一個圖書類Book:聲明兩個聲明兩個Book類的實例,分別通過變量類的實例,分別通過變量book1和和book2進行引用,對進行引用,對book1進行具體的初始化,而將進行具體的初始化,而將book2初始化為初始化為null,具體代碼如下。,具體代碼如下。public class Book String isbn = “978-7-115-16451-3”;String name = “應(yīng)用

7、開發(fā)完全手冊”;String author = “科技”;float price = 59.00F;Book book1 = new Book();Book book2 = null;12Java虛擬機為引用變量虛擬機為引用變量book1、book2及及book1所引用所引用對象的成員變量分配的內(nèi)存空間如下圖所示。對象的成員變量分配的內(nèi)存空間如下圖所示。從圖中可以看出,變量從圖中可以看出,變量book1引用了引用了Book類的實例,類的實例,book2沒有引用任何實例。沒有引用任何實例。13下面對變量下面對變量book2進行具體的初始化,將進行具體的初始化,將book1引用實例的引用實例的地址

8、復(fù)制給地址復(fù)制給book2變量,即變量,即book2與與book1引用同一個引用同一個Book類的類的實例,具體代碼如下:實例,具體代碼如下:book2=book1;此時此時Java虛擬機的內(nèi)存空間分配情況如下圖所示。虛擬機的內(nèi)存空間分配情況如下圖所示。14自動類型轉(zhuǎn)換(隱式)自動類型轉(zhuǎn)換(隱式)不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下: 低低-高高 byte,short,char- int - long - float - double 強制類型轉(zhuǎn)換(顯式)強制類型轉(zhuǎn)換(顯式) 目標類型目標類型 變量變量 = =(目標類型)值;(目標類型)值;基本數(shù)據(jù)類型轉(zhuǎn)換基本數(shù)據(jù)類型轉(zhuǎn)換舉例:舉例:byteb=12

9、2;intx=b;b=x; 1 2 3 4 4 b=(byte)x;15表達式數(shù)據(jù)類型的自動提升表達式數(shù)據(jù)類型的自動提升 所有的所有的bytebyte、shortshort、charchar的值將被提升到的值將被提升到intint; 如果一個操作數(shù)是如果一個操作數(shù)是longlong型,計算結(jié)果就是型,計算結(jié)果就是longlong型;型; 如果一個操作數(shù)是如果一個操作數(shù)是floatfloat型,計算結(jié)果就是型,計算結(jié)果就是floatfloat型;型; 如果一個操作數(shù)是如果一個操作數(shù)是doubledouble型,計算結(jié)果就是型,計算結(jié)果就是doubledouble型。型?;緮?shù)據(jù)類型轉(zhuǎn)換基本數(shù)據(jù)類

10、型轉(zhuǎn)換分析:分析:System.out.println(a+1)與與System.out.println(“”+a+1)的區(qū)別的區(qū)別16常量與變量常量與變量Java中的常量中的常量(1)整型常量)整型常量 十進制十進制(12),十六進制,十六進制(0 x12),八進制,八進制(012)(2)長整型常量)長整型常量 13L(3)單精度浮點數(shù))單精度浮點數(shù) 5.1f, .4f, 2e3f, 0f(4)雙精度浮點數(shù))雙精度浮點數(shù) 5.1,0.4,2e-3,0d17常量與變量常量與變量Java中的常量中的常量(5)布爾常量)布爾常量 true和和false(6)字符常量)字符常量 a,8,n,t,b,

11、(7)字符串常量)字符串常量 “Hello world”,”123”,”Welcomen”(8)null常量常量 null常量只有一個值,用常量只有一個值,用null表示,表示對象的引用為空。表示,表示對象的引用為空。18常量與變量常量與變量聲明常量聲明常量final常量類型常量類型常量標識符常量標識符;初始化常量初始化常量(1)聲明時初始化)聲明時初始化finalintYOUTH_AGE=18;finalintA=3,B=4,C=5;(2)聲明后初始化)聲明后初始化finalintYOUTH_AGE;YOUTH_AGE=18; finalintYOUTH_AGE=18;YOUTH_AGE=1

12、6;常常量量的的值值不不允允許許被被修修改改19變量的使用要點變量的使用要點變量就是系統(tǒng)為程序分配的一塊內(nèi)存單元,用來存儲各種不同類型的數(shù)據(jù)。變量類型變量類型 變量標識符變量標識符;例如:String name;/ 聲明String型變量int partyMemberAge ;/ 聲明int型變量注意:注意:定義變量名時,按照定義變量名時,按照Java的命名規(guī)則,第一個的命名規(guī)則,第一個單詞的首字母小寫,其他單詞的首字母大寫,例如單詞的首字母小寫,其他單詞的首字母大寫,例如“partyMemberAge”。20Java語言中的運算符主要包括:賦值運算符算術(shù)運算符關(guān)系運算符(比較運算符)邏輯運算

13、符位運算符運算符運算符21賦值運算符賦值運算符 注注1:在在JAVA里可以把賦值語句連在一起。里可以把賦值語句連在一起。如:如:x=y=z=5;所有三個變量都得到同樣的值所有三個變量都得到同樣的值5。注注2:x+=3等效于等效于x=x+3,等于,等于*=,-=-=,/=依此類推。依此類推。22算術(shù)運算符算術(shù)運算符23算術(shù)運算符的注意問題算術(shù)運算符的注意問題“+”除字符串相加功能外,還能把非字符串轉(zhuǎn)換成字符串 ,如: “x”+123;的結(jié)果是“x123” 。 如果對負數(shù)取模,可以把模數(shù)負號忽略不記。 5%-2=? 5/-2=? -5%2=? -5%-2=?對于除號“/”,它的整數(shù)除和小數(shù)除是有區(qū)

14、別的:整數(shù)之間做除法時,只保留整數(shù)部分而舍棄小數(shù)部分。 如: int x=3510;x=x/1000*1000; 運行結(jié)果是? /被除數(shù)是負數(shù)時另當別論被除數(shù)是負數(shù)時另當別論24算術(shù)運算符的應(yīng)用技巧算術(shù)運算符的應(yīng)用技巧思考題思考題1:某個培訓(xùn)中心要為新到的學(xué)員安排房間,假:某個培訓(xùn)中心要為新到的學(xué)員安排房間,假設(shè)共有設(shè)共有x個學(xué)員,每個房間可以住個學(xué)員,每個房間可以住6人,讓你用一個公式人,讓你用一個公式來計算他們要住的房間數(shù)?來計算他們要住的房間數(shù)?答案:答案:(x+5)/6。這種算法還可用在查看留言板的分頁。這種算法還可用在查看留言板的分頁顯示上:顯示上:其中其中x是總共的留言數(shù),是總共的

15、留言數(shù),6是每頁顯示的留言是每頁顯示的留言數(shù),結(jié)果就是總共有多少頁。數(shù),結(jié)果就是總共有多少頁。答案:答案:intx=0;while(true)x=(x+1)%10;思考題思考題2:假設(shè)你要讓:假設(shè)你要讓x的值在的值在0至至9之間循環(huán)變化,請之間循環(huán)變化,請寫出相應(yīng)的程序代碼。寫出相應(yīng)的程序代碼。25比較運算符比較運算符 注注1:比較運算符的結(jié)果都是比較運算符的結(jié)果都是boolean型,要么是型,要么是true,要么,要么是是false。注注2:比較運算符比較運算符“=”不能誤寫成不能誤寫成“=”,切記!切記!切記!切記!26注注1:邏輯運算符用于對邏輯運算符用于對boolean型結(jié)果的表達式進

16、行運算,運算的結(jié)型結(jié)果的表達式進行運算,運算的結(jié)果都是果都是boolean型型。邏輯運算符邏輯運算符 27運算符運算符“&”和和“&”的區(qū)別的區(qū)別運算符“&”只有在其左側(cè)為true時,才運算其右側(cè)的邏輯表達式,否則直接返回運算結(jié)果false。運算符“&”無論其左側(cè)為true或false,都要運算其右側(cè)的邏輯表達式,最后才返回運算結(jié)果。28public class TestAnd public static void main(String args) int x=0; int y=3; if(x!=0 & y=y/x) System.out.printl

17、n(y = +y); 運算符運算符“&”和和“&”的區(qū)別的區(qū)別 上面例子中,由于if語句的判斷條件中的第一個布爾表達式是不成立的,程序就不會判斷第二個布爾表達式的值,這就是“短路”。 如果兩個表達式之間用“&”來連接,如果正好碰到上面所示的特殊情況,程序運行時就會出錯。 29位運算符位運算符為了方便對二進制位進行操作,Java給我們提供了四個二進制位操作符:& 按位與| 按位或 按位異或 按位取反30位運算符位運算符按位與 01101101 00110111 00100101 結(jié)論:按位與,只有壹結(jié)論:按位與,只有壹(1)壹壹(1)為為1。&31位運算符

18、位運算符按位或 01101101 00110111 01111111 結(jié)論:按位或,只有零結(jié)論:按位或,只有零(0)零零(0)為為0。|32位運算符位運算符按位異或 01101101 00110111 01011010 結(jié)論:按位異或,只有零結(jié)論:按位異或,只有零(0)壹壹(1)或壹或壹(1)零零(0)為為1。33位運算符位運算符按位取反 01101101 10010010 結(jié)論:對二進制數(shù)按位取反,即結(jié)論:對二進制數(shù)按位取反,即0變成變成1,1變成變成0。34移位運算符移位運算符Java中有三個移位運算符中有三個移位運算符左移:左移: (高位添符號位)無符號右移:無符號右移: (高位添0補齊

19、)35移位運算符移位運算符數(shù) x x2 x217 00010001 00 01000100 00000100 01 00000100 01-17 11101111 11 10111100數(shù) x x2 x217 00010001 00 01000100 00000100 01 00000100 01-17 11101111 11 10111100 11111011 11 00111011 1136【1】下面語句的輸出結(jié)果正確嗎?下面語句的輸出結(jié)果正確嗎? int x=7; System.out.println(false& (+x=8); /輸出輸出false System.out.pr

20、intln(true| (x+= =8); /輸出輸出true System.out.println(x=+x); /輸出輸出x=7【2】有程序段有程序段: int i = 10; int n = i+%5; 程序運行后程序運行后i是多少?如果用是多少?如果用+i,那么,那么i和和n的值最后是多少?的值最后是多少?Question?【3】執(zhí)行代碼后執(zhí)行代碼后i是多少?是多少? int i = 8; i =2; 【4】代碼執(zhí)行后代碼執(zhí)行后i是多少?是多少? int i = 17; i =1;37【5】下面的語句執(zhí)行后下面的語句執(zhí)行后,a,b,c的值為多少?的值為多少?booleana,b,c;a

21、=2015&2030;b=10!=3+4|15=2*4;c=!(1015?20:30;b=30=a?10:20;c=b=20?true:false;38對象運算符(對象運算符(instanceof)對象運算符用來判斷對象是否為某一類型,運算結(jié)果為boolean型。用法為:對象標識符 instanceof 類型標識符例如:java.util.Date date = new java.util.Date();System.out.println(date instanceof java.util.Date); / 結(jié)果為trueSystem.out.println(date instanc

22、eof java.sql.Date); / 結(jié)果為false39控制結(jié)構(gòu)控制結(jié)構(gòu)分支語句分支語句循環(huán)語句循環(huán)語句跳轉(zhuǎn)語句跳轉(zhuǎn)語句40分分 支支 語語 句句分支語句就是對語句中不同條件的值進行判斷,從而根據(jù)不同的條件執(zhí)行不同的語句。Java語言的分支語句有以下兩種。條件語句switch開關(guān)語句41條件語句條件語句條件語句可分為以下3種形式:(1)簡單的if條件語句(2)if-else條件語句(3)if-else if多分支條件語句42簡單的簡單的if條件語句條件語句 簡單的if條件語句就是對某種條件做出相應(yīng)的處理。通常表現(xiàn)為“如果滿足某種情況,那么就進行某種處理”。它的一般形式為:if(表達式)

23、語句序列if(今天下雨) 我們就不出去玩例如:如果今天下雨,我們就不出去玩。條件語句為:43if.else條件語句條件語句ifelse條件語句也是條件語句的一種最通用的形式。else是可選的。通常表現(xiàn)為“如果滿足某種條件,就做某種處理,否則做另一種處理”。它的一般形式為:if(表達式) 語句序列1else 語句序列2if(今年是閏年) 二月份為29天else 二月份為28天44if.else if多分支語句多分支語句ifelse if多分支語句用于針對某一事件的多種情況進行處理。通常表現(xiàn)為“如果滿足某種條件,就進行某種處理,否則如果滿足另一種條件才執(zhí)行另一種處理”。它的一般形式為:if(表達式

24、1) 語句序列1else if(表達式2) 語句序列2else 語句序列n45if.else if多分支語句多分支語句語句序列1在表達式1的值為true時被執(zhí)行,語句序列2在表達式2的值為true時被執(zhí)行,語句序列n在表達式1的值為false,表達式2的值也為false時被執(zhí)行。ifelse if多分支語句執(zhí)行過程如下圖所示。46if.else if多分支語句多分支語句例如:如果今天是星期一,上數(shù)學(xué)課;如果今天是星期二,上語文課;否則上自習(xí)。if(今天是星期一) 上數(shù)學(xué)課else if(今天是星期二) 上語文課else 上自習(xí)47if語句的嵌套語句的嵌套if語句的嵌套就是在if語句中又包含一個

25、或多個if語句。在嵌套的語句中最好不要省略大括號不要省略大括號,以提高代碼的可讀性。if(表達式1) if(表達式2) 語句序列1 else 語句序列2 else if(表達式3) 語句序列3 else 語句序列4 48switch多分支語句多分支語句switch(表達式) case 常量表達式1: 語句序列1 break; case 常量表達式2: 語句序列2 break; case 常量表達式n: 語句序列n break; default: 語句序列n+1 break;switch語句是多分支的開關(guān)語句。根據(jù)表達式的值來執(zhí)行輸出的語句。這樣的語句一般用于多條件多值的分支語句中。右側(cè)是它的語

26、法格式:break用于結(jié)束switch語句。49switch多分支語句多分支語句vswitch語句中表達式的值必須是整型或字符型整型或字符型。即int、short、byte和char型。v如果沒有break,則將繼續(xù)執(zhí)行后面條件的語句,直到遇到break或結(jié)束為止?!纠颗袛嘟裉焓且荒曛械牡趲滋?,考慮閏年。50循循 環(huán)環(huán) 語語 句句循環(huán)語句就是重復(fù)執(zhí)行某段程序代碼,直到滿足特定條件為止。在Java語言中循環(huán)語句有以下3種形式:for循環(huán)語句while循環(huán)語句do-while循環(huán)語句51for循環(huán)語句循環(huán)語句 for語句是最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下。它的一般形式為:for(初

27、始化語句;循環(huán)條件;迭代語句) 語句序列52while循環(huán)語句循環(huán)語句while語句是用一個表達式來控制循環(huán)的語句。它的一般形式為:如果表達式的值為true,則會執(zhí)行循環(huán)體。當?shù)竭_循環(huán)體的末尾時,會再次檢測表達式,直到表達式的值為false,結(jié)束循環(huán)。while(表達式) 語句序列53do.while循環(huán)語句循環(huán)語句do.while循環(huán)語句稱為后測試循環(huán)語句,它利用一個條件來控制是否要繼續(xù)重復(fù)執(zhí)行這個語句。它的一般形式為:dowhile循環(huán)至少被執(zhí)行一次,它先執(zhí)行循環(huán)體的語句序列,然后再判斷是否繼續(xù)執(zhí)行。do 語句序列while(表達式);54跳跳 轉(zhuǎn)轉(zhuǎn) 語語 句句vJava語言中支持的跳轉(zhuǎn)語句包括:break跳轉(zhuǎn)語句continue跳轉(zhuǎn)語句return跳轉(zhuǎn)語句55break跳轉(zhuǎn)語句跳轉(zhuǎn)語句break語句在for,while或dowhile循環(huán)中,用于強行終止循環(huán)。只 要 執(zhí) 行 到break語句,就會終止循環(huán)體的執(zhí)行。break不僅在循環(huán)語句里適用,在switch多分支語句里也適用。 【示例代碼】 int i = 0; while(i 10) i+; if(i = 5) break; System.out.printl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論