【大學課件】第2章 Java應用基礎_第1頁
【大學課件】第2章 Java應用基礎_第2頁
【大學課件】第2章 Java應用基礎_第3頁
【大學課件】第2章 Java應用基礎_第4頁
【大學課件】第2章 Java應用基礎_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章

Java應用基礎1Java應用基礎主要內(nèi)容Java應用基礎開始返回上一頁下一頁22.1

標識符、關鍵字標識符關鍵字2.2

基本數(shù)據(jù)類型2.3

常量、變量常量變量2.4

運算符與表達式2.5

流程控制語句2.6

Java開發(fā)類庫組成掌握java.lang包2.1標識符、關鍵字Java應用基礎開始返回上一頁下一頁3Java語言使用國際字符集(Unicode)Unicode字符集定義了一套國際標準字符集。

通常的ASCII碼是8位的,而Unicode字符集中的每個字符占16位,即2個字節(jié),整個字符集共包括65336個字符,兼容ASCII,排在前面的256個字符就是

ASCII碼。

Unicode除了可以表示256個ASCII碼外,還可以表示漢字、拉丁語、希臘字母、朝鮮語等。關于標識符Java應用基礎開始返回上一頁下一頁5為增強程序可讀性,Java作如下的約定:類、接口:方法:通常使用名詞,且每個單詞的首字母要大寫通常使用動詞,首字母小寫,其后用大寫字母分隔每個單詞全部大寫,單詞之間用下劃線分隔通常使用名詞,首字母小寫,其后大寫字母分隔每個單詞,避免使用$符號。常量:變量:例:下面是合法的標識符:identifierthisoneUserNameUser_name

_system_varl

$max下面是不合法的標識符:8_value$book*c(不能以數(shù)字打頭)(不能包含非法字符*)2.1.2關鍵字Java應用基礎開始返回上一頁下一頁6關鍵字是指對編譯器有特殊意義,在程序中不能用作其它目的的字符序列,關鍵字都是由小寫字母組成的。Java中的關鍵字:abstract

booleanbreak

bytecasecatchcharclasscontinuedefault

dodoubleelseextends

finalfinally

floatforifimplementsimportinstanceofewintinterface

longprivate

protectednative

npackagenulleturnpublic

rshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatile

while關于關鍵字注:

true和false不是關鍵字,類似地,對象值null也沒有列入關鍵字。但是不能把它們派作其它用途。

還有些關鍵字,如cast、future、goto、generic、inner、operator、outer、rest、var等都是Java保留的沒有意義的關鍵字。Java應用基礎開始返回上一頁下一頁72.2基本數(shù)據(jù)類型數(shù)據(jù)類型規(guī)定一類數(shù)據(jù)的數(shù)據(jù)位長度,取值范圍,以及對該類數(shù)據(jù)所能進行的操作。Java數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(引用類型又稱為組合類型)。Java語言定義了8種基本數(shù)據(jù)類型,其分類及關鍵字如下:整型: byte、short、int、long浮點型:float、double字符型:char布爾型:booleanJava應用基礎開始返回上一頁下一頁8表2.1

Java中的基本數(shù)據(jù)類型Java應用基礎開始返回上一頁下一頁9關于補碼關于補碼正數(shù)的原碼反碼補碼相同,負數(shù)的補碼為反碼加1。Java應用基礎開始返回上一頁下一頁10以八位為例,正2負2原碼反碼補碼都是00000010原碼是10000010,反碼是11111101,補碼是11111110因為計算機只會累加,別的都不會,一切運算都要變成加法才能完成.那么怎樣把減法變成加法呢?就是用補碼相加的方法例如2減2(八位為例)2.3常量、變量Java應用基礎開始返回上一頁下一頁11Java語言中存在著兩種表征數(shù)據(jù)的形式:常量與變量。

常量:程序運行過程中保持不變,并且不可進行修改的量。

變量:用來存放數(shù)據(jù)且其值可以改變的量稱為變量。2.3.1常量Java應用基礎開始返回上一頁下一頁12Java語言中常量有兩種類型:直接常量(值常量)5種122

.

1true‘A’“asdfadf”整型浮點型布爾型字符型字符串型符號常量Java語言中使用關鍵字final來定義符號常量,final

double

PI=3.1415926;注:符號常量實質(zhì)上是一種特殊的變量,也占用內(nèi)存空間。不同于C語言編譯預處理定義的宏。值常量Java應用基礎開始返回上一頁下一頁13整型常量(byte、short、int、long)整型常量可以用來給整型變量賦值,可以用十進制、八進制和十六進制來表示。十進制整型常量由0至9的數(shù)字組成,沒有前綴,不能以0開始,沒有小數(shù)部分。例如:124,-36等。八進制整型常量以0為前綴,其后由0到7的數(shù)字組成,沒有小數(shù)部分。例如:0332,-0122等。十六進制整型常量以0x或0X為前綴,其后由0到9的數(shù)字和A到F(大小寫均可)字母組成,沒有小數(shù)部分。例如:0x3A,-0X43f等。值常量Java應用基礎開始返回上一頁下一頁14浮點型常量(float、double)十進制小數(shù)表示法由整數(shù)部分和小數(shù)部分組成的。如:4.0,33.32等。小數(shù)點兩邊的數(shù)字不能同時省略且小數(shù)點不能省略。科學計數(shù)法表示它常用來表示很大或很小的數(shù),如1.2×1000000在Java中表示為1.2E6。表示方法是在小數(shù)表示法后加e(或E)及指數(shù)部分。但要注意,e(或E)前面必須有數(shù)字,指數(shù)部分可正可負,但都是整數(shù)(正號可省略)。例如,4.2E-5,3e6等。布爾型常量boolean布爾型常量值只有true和false,true和false必須要小寫。true表示“邏輯真”,false表示“邏輯假”。注:和C/C++語言不同,在Java語言中不能認為“非0值或1”是true,“0值”是false。值常量Java應用基礎開始返回上一頁下一頁15字符型常量

Java中的字符采用Unicode字符集的編碼方案,是16位的無符號整數(shù),占2個字節(jié),表示的字符從0~65535。Unicode字符集可以支持各類文字的字符。

字符型常量分為一般字符常量和轉(zhuǎn)義字符常量。對于可輸入字符,用單引號將字符括起來,如‘a(chǎn)’,‘A’,‘我’等。對于不可輸入字符,采用轉(zhuǎn)義字符表示。表2.2轉(zhuǎn)義字符Java應用基礎開始返回上一頁下一頁16值常量Java應用基礎開始返回上一頁下一頁17字符串不是Java的基本數(shù)據(jù)類型,是Java提供的位于java.lang包中的String類,字符串常量就是字符串類java.lang.String類的一個對象,故它可以使用類String中的方法,所有字符串常量值都用雙引號括起來。

需要注意的是null可以簡單視為一個引用類型的常量值,表示不引用任何對象。在Java編碼規(guī)范中,規(guī)定null是所謂null類型的唯一值,且規(guī)定null可轉(zhuǎn)換到任何引用類型。5.字符串常量2.3.2變量Java應用基礎開始返回上一頁下一頁18

每個變量都要有個名字,變量名必須是合法的標識符,并且最好具有一定的意義,有意義的變量名可以提高

程序的可讀性。如,要定義一個表示學生數(shù)量的變量,用student_num做變量名要比用k更合適。所有變量在使用之前必須被定義,格式如下: 數(shù)據(jù)類型關鍵字

變量名[=初始值];變量例://x為基本整型

int

x;//y為浮點數(shù)(單精度),并且賦給初始值3.14float

y=3.14;//可以在一個語句中聲明多個同一類型的變量

long

area,width,length;Java應用基礎開始返回上一頁下一頁192.4運算符與表達式Java應用基礎開始返回上一頁下一頁20

對各種類型的數(shù)據(jù)進行加工的過程稱為運算,表示各種不同運算的符號稱為運算符,參與運算的數(shù)據(jù)稱為操作數(shù)。運算符的優(yōu)先級與結(jié)合性如下表所示。

一個Java表達式是由操作數(shù)和運算符按一定的語法規(guī)則組成的符號序列。2.4.1賦值運算符和賦值表達式Java應用基礎開始返回上一頁下一頁22賦值運算符

基本賦值運算符“=”它的作用是設置變量的值,即將一個數(shù)據(jù)賦給一個變量,實際上是將特定的值寫到變量所對應的內(nèi)存單元中。賦值運算符是雙目運算符,因為“=”兩邊都要有操作數(shù)?!?”左邊是待賦值的變量,右邊是要賦的值。復合賦值運算符+=、-=、*=、/=、%=<<=、>>=、&=、|=、^=賦值運算符和賦值表達式Java應用基礎開始返回上一頁下一頁232.賦值表達式我們可以用常量對變量賦值,也可以用變量對變量賦值,還可以用任何表達式對變量賦值。用賦值運算符連接起來的式子稱為賦值表達式。賦值表達式的值就是被賦值的變量的值。賦值表達式加上分號就構(gòu)成了賦值語句,是極為常用的Java語句。例:public

class

AssignExpression{public

static

void

main(String[]args)

{int

a,b,c,d;a=4;b=a;a=5;c=d=6;c*=a;d%=a+b;System.out.println("

a,b,c,d:

"+a+""+b+""+c+""+d);}}2.4.2算術運算符和算術表達式Java應用基礎開始返回上一頁下一頁24算術運算符算術運算符包括:+

-

*

/ %(取余)算術運算符是雙目運算符。利用算術運算符連接起來的式子稱為算術表達式。自增、自減運算符++、--單目運算符。其功能是使變量的值增1或減1。++和--運算有以下四種情況:(1)i++:使用i之后,i的值加1,即先取值,后自加。等價于i=i+1。(2)++i:先使i加1,然后再使用i,即先自加,后取值。等價于i=i+1。(3)i--:使用i之后,i的值減1,即先取值,后自減。等價于i=i-1。(4)--i:先使i減1,然后再使用i,即先自減,后取值。等價于i=i-1。注:++和--只能用于變量,不能用于常量和表達式。因為++和--蘊含著賦值操作。++和--運算符經(jīng)常用于循環(huán)程序設計中。2.4.3關系運算符和關系表達式Java應用基礎開始返回上一頁下一頁25關系運算符又稱比較運算符。Java提供了6種關系運算符:>、>=、<、<=、==、!=。前4種優(yōu)先級相同,且高于后面的兩種。關系表達式用關系運算符連接的式子稱為關系表達式。一般格式為:表達式1

關系運算符

表達式2關系表達式的值代表著某種關系的真假。比如,如果x的值是10,那么,x>5的值是“真”,而x<1的值是“假”。2.4.4邏輯運算符和邏輯表達式Java應用基礎開始返回上一頁下一頁26邏輯運算符Java提供了3種邏輯運算符:&&(與)、||(或)、!(非)。a&&b:只有a與b都為true,結(jié)果才為true,否則為false。a||b:只有a與b都為false,結(jié)果才為false,否則為true。!a: 與a的值相反。邏輯表達式用邏輯運算符連接起來的式子稱為邏輯表達式,用于表示復雜的運算條件。注:在邏輯表達式求值的過程中,并不是所有的邏輯運算都被執(zhí)行,即在Java中要進行所謂的短路計算。邏輯運算符和邏輯表達式Java應用基礎開始返回上一頁下一頁27短路計算例如:在求解a&&b&&c的值時,只有a的值是真時,才會計算b的值;只有a和b均為真時,才會計算c的值。如果a為假,則不會繼續(xù)計算b和c的值,因為整個表達式的值已經(jīng)確定了。在求解a||b||c的值時,只有a是假時,才會計算b的值;只有a和b均為假時,才會計算c的值。如果a是真,就不會計算b和c的值,因為整個表達式的值已經(jīng)確定了。Java編譯程序按照“短路”計算方式來生成目標代碼。2.4.5條件運算符和條件表達式Java應用基礎開始返回上一頁下一頁28條件運算符是Java提供的唯一一個三目運算符。用條件運算符連接起來的式子稱為條件表達式。格式:

表達式

1?

表達式2

:

表達式3運算規(guī)則:如果表達式1的值為真,那么整個條件表達式的值就是表達式2的值,否則整個條件表達式的值是表達式3的值。例:4>6?3:9的值請判斷一下。開始 返回 上一頁 下一頁2.4.6位運算符和位表達式位運算符的作用在于對整數(shù)數(shù)值的二進制表示進行運算,像二進制的AND與OR等運算。按位求反運算符~對操作數(shù)的二進制數(shù)據(jù)的每一個二進制位都取反,即1變成0,而0變成1。如~8的結(jié)果為-9。位與運算符&參與運算的兩個操作數(shù),相應的二進制數(shù)位進行位與運算。如5&11結(jié)果為1。位或運算符|參與運算的兩個操作數(shù),相應的二進制數(shù)位進行位或運算。如5|11結(jié)果為15。位異或運算符^參與運算的兩個操作數(shù),相應的二進制數(shù)位進行位異或運算。Java應如用5基^礎11結(jié)果為14。29位運算符和位表達式保留符號位的右移運算符>>將一個操作數(shù)的各個二進制位全部向右移若干位,這個位數(shù)由右操作數(shù)來決定,移到右端的低位被舍棄,左邊空出的位全部用最高位的符號位來填充。如5>>1結(jié)果為?-9>>1,結(jié)果為?不保留符號位的右移運算符>>>與>>不同的是,>>>右移后左邊空出的位用0填充。如5>>>1結(jié)果為2。-9>>>1,結(jié)果為2147483643。左移運算符<<將一個操作數(shù)的所有二進制位向左移若干位,右邊空出的位填0。若高位左移后溢出,則舍棄溢出的數(shù)。如5<<1結(jié)果為10。Java應用基礎開始返回上一頁下一頁30流程控制語句Java應用基礎開始返回上一頁下一頁32Java與C/C++之間的差別很細微,可歸納為兩點:在C語言中,條件表達式可以是數(shù)值型,而在Java條件語句中,條件表達式必須是布爾型,不能是數(shù)值。Java取消了對goto語句的支持。2.5.1順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單、最基本的結(jié)構(gòu),在順序結(jié)構(gòu)內(nèi),順序執(zhí)行各個語句。圖2.1表示了一個順序結(jié)構(gòu)形式,從圖中可以看出它有一個入口a點,一個出口b點,在結(jié)構(gòu)內(nèi)A框和B框都是順序

執(zhí)行的處理框。Java應用基礎開始返回上一頁下一頁33順序結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁34空語句、表達式語句、復合語句是Java程序依次順序執(zhí)行的語句,故又稱為順序結(jié)構(gòu)??照Z句是僅由分號構(gòu)成的語句,表示什么動作都不做。

一個表達式加上一個分號就是一個表達式語句,只有少量的幾種表達式才能構(gòu)成表達式語句。它們是:由賦值運算符構(gòu)成的表達式、由++或--構(gòu)成的表達式、方法調(diào)用、new表達式。標號語句的格式為: 標識符:<語句>其中:<語句>可為任何合法的Java語句。

復合語句是指由一對花括號{}括起來的任意數(shù)量的語句,有時又稱為塊語句或組語句。順序結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁35示例:import

java.io.*;public

class

NiZhuan{//引入java的輸入輸出包public

static

void

main(String

args[])

{int

n,i,j,k;String

str="";BufferedReader

buf;

//參見第8章buf=new

BufferedReader(new

InputStreamReader(System.in));System.out.print("請輸入一個三位數(shù)的整數(shù):");try{str=buf.readLine();

//從鍵盤輸入數(shù)據(jù)}catch(IOException

ex){}//捕獲異常

n=Integer.parseInt(str);//調(diào)用Integer類的parseInt方法將字符串轉(zhuǎn)換為整型i=n/100;n=n-i*100;j=n/10;n=n-j*10;k=n;//求百位數(shù)//求十位數(shù)//求個位數(shù)System.out.println("逆轉(zhuǎn)數(shù):"+k+j+i);//反向顯示}}2.5.2選擇結(jié)構(gòu)gargs[]){]);if語句簡單if語句if(布爾表達式){語句(組);}publicclassMaxValue1{publicstaticvoidmain(Strininta,b,max;a=Integer.parseInt(args[0b=Integer.parseInt(args[1]);max=a;if(a<b){max=b;}System.out.println("最大數(shù)為:"+max);}}Java應用基礎開始返回上一頁下一頁36選擇結(jié)構(gòu);in(Stringargs[]){seInt(args[0]);seInt(args[1]);(2)if-else語句if(布爾表達式){語句(組)A}else{語句(組)B;}publicclassMaxValue12{publicstaticvoidmainta,b,max;a=Integer.parb=Integer.parif(a<b)max=b;elsemax=a;System.out.println("最大數(shù)為:"+max);}}Java應用基礎開始返回上一頁下一頁37選擇結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁38(3)

if語句的嵌套if語句中的任何一個子句可以是任意可執(zhí)行語句,當然也可以是一條if語句,這種情況稱為if語句的嵌套。public

class

IfElse{public

static

void

main(String

args[])

{int

score;char

grade;score=Integer.parseInt(args[0]);System.out.println("score="+score);if(score>94)

grade="A";else

if(score>79)

grade="B";else

if(score>59)

grade="C";else

grade="D";System.out.println("grade="+grade);}}2.switch語句如下:switch語句是多分支選擇語句,又稱開關語句。switch語句的一般形式switch(表達式){

case常量表達式1:語句組1;break;case常量表達式2:語句組2;break;…case常量表達式n:語句組n;break;default:語句組n+1;}Java應用基礎開始返回上一頁下一頁392.5.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指在一定條件下反復執(zhí)行一個程序塊的結(jié)構(gòu)。循環(huán)結(jié)構(gòu)也是只有一個入口,一個出口。分為(1)當型循環(huán)結(jié)構(gòu)(2)直到型循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁40循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁41Java語言中,實現(xiàn)循環(huán)結(jié)構(gòu)的控制語句有while、do~while、for語句(三種等價)。while循環(huán)while語句用來實現(xiàn)“當型”循環(huán)結(jié)構(gòu),即先判斷表達式,后執(zhí)行語句。其一般形式如下:while(循環(huán)條件){語句;//循環(huán)體}do-while循環(huán)do-while語句用來實現(xiàn)“直到型”循環(huán)結(jié)構(gòu),即先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。其一般形式如下:do{語句;//循環(huán)體}while(循環(huán)條件);循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁433.for循環(huán)for語句是java語言中使用靈活方便的一種循環(huán)語句,它不僅用于循環(huán)次數(shù)已知的情況,還能用于循環(huán)次數(shù)預先不能確定只給出循環(huán)結(jié)束條件的情況。

for語句的一般形式為:for(表達式1;表達式2;表達式3){語句;//循環(huán)體}public

class

SumCycle3{public

static

void

main(String

args[])int

sum,i;for(sum=0,i=0;i<=100;i++)sum+=i;System.out.println("sum

=

"+sum);}{}循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁44break、continue、標號、return語句、

System.exit()方法break、continue、標號Java中可以用break和continue兩個循環(huán)跳轉(zhuǎn)語句進一步控制循環(huán)??梢杂迷谌N循環(huán)語句中的任意一種。格式如下:break[label];

//從所在的switch語句、循環(huán)語句中跳出。

continue[label];//跳過循環(huán)體的剩余語句,開始執(zhí)行下一次循環(huán)。標號是出現(xiàn)在一個語句之前的標識符,定義如下:label:statement;示例:參看例2.13與2.14循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁45publicclassBreak{publicstaticvoidmain(Stringargs[]){intnumber,i;number=Integer.parseInt(args[0]);for(i=2;i<number;i++)if(number%i==0)

break; //如果number能被i整除則退出循環(huán)

if(i==number)System.out.print(number+"是素數(shù)");

elseSystem.out.println(number+"不是素數(shù)");}}循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁46publicclassContinue1{publicstaticvoidmain(Stringargs[]){inti,count=0;for(i=100;i<=150;++i){if(i%3==0)

continue;System.out.print(i+"");count++;if(count%5==0)System.out.println();//一行輸出5個數(shù)據(jù)}System.out.println();}}循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁47return語句和System.exit()方法

return語句用來從當前方法中退出,返回到調(diào)用該方法的

語句處,并從緊跟該語句的下一條語句繼續(xù)執(zhí)行。如果在

main()方法中執(zhí)行return語句,則使程序執(zhí)行返回到Java運行系統(tǒng),因為Java運行系統(tǒng)調(diào)用了main()方法。要想從程序的任意地方直接一步到位地退出程序,而不是返回到調(diào)用該方法的語句處,可以使用System.exit()方法。循環(huán)結(jié)構(gòu)5.

循環(huán)的嵌套一個循環(huán)體內(nèi)包含另一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套,內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。(a)(b)(c)Java應用基礎開始返回上一頁下一頁48循環(huán)結(jié)構(gòu)Java應用基礎開始返回上一頁下一頁49public

class

Continue2{public

static

void

main(String

args[]){int

i,j;int

count=0;Label1:for(i=2;i<100;i++)

{for(j=2;j<i;j++){if(i%j==0)continue

Label1;//如果i能被j整除,進行外層循環(huán)}if(i<10)System.out.print(i+"

");else{System.out.print(i+"

");count++;if(count%5==0)

System.out.println();//一行輸出5個數(shù)據(jù)}System.out.println();}}Java開發(fā)類庫組成Java應用基礎開始返回上一頁下一頁51java.lang包含了定義Java語言時必須的類,任何java程序都將自動引入這個包。其中的類包括:

Object類:java中最原始、最重要的類,每個jav

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論