第2章java語言基礎(chǔ)_第1頁
第2章java語言基礎(chǔ)_第2頁
第2章java語言基礎(chǔ)_第3頁
第2章java語言基礎(chǔ)_第4頁
第2章java語言基礎(chǔ)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章Java語言基礎(chǔ)學(xué)習(xí)導(dǎo)讀掌握J(rèn)ava語言的基礎(chǔ)知識,是正確編寫Java程序的前提,也是進(jìn)一步深入學(xué)習(xí)Java語言的基礎(chǔ)。本章主要介紹編寫Java程序必須熟悉的語言基礎(chǔ)知識,包括Java語言標(biāo)識符、保留字、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、標(biāo)準(zhǔn)輸入輸出、流程控制語句以及數(shù)組。

課程結(jié)構(gòu)2.1

標(biāo)識符和保留字2.2數(shù)據(jù)類型2.3運(yùn)算符與表達(dá)式2.4Java的常用的輸入與輸出2.5Java的流程控制語句2.6數(shù)組2.1標(biāo)識符和保留字1.標(biāo)識符標(biāo)識符用于標(biāo)識變量、函數(shù)、類和對象的名稱,一來說明它們的存在,二來方便地使用它。標(biāo)識符由字母、數(shù)字、下劃線和$構(gòu)成;第一個字符不能是數(shù)字字符;保留字不能作為用戶自定義的標(biāo)識符。2.1標(biāo)識符和保留字2.保留字保留字或關(guān)鍵字是指那些具有專門的意義和用途的、由系統(tǒng)定義的標(biāo)識符。const和goto保留字沒有任何意義表2-1常見保留字2.2數(shù)據(jù)類型Java的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型(或叫簡單數(shù)據(jù)類型)和復(fù)合數(shù)據(jù)類型?;緮?shù)據(jù)類型是指由Java語言本身定義的數(shù)據(jù)類型。復(fù)合數(shù)據(jù)類型是由用戶根據(jù)需要自己定義并實(shí)現(xiàn)其運(yùn)算的數(shù)據(jù)類型。表2-2Java定義的所有基本數(shù)據(jù)類型類型范圍/格式說明整數(shù)類型byte8位二進(jìn)制補(bǔ)碼字節(jié)整型short16位二進(jìn)制補(bǔ)碼短整型int32位二進(jìn)制補(bǔ)碼整型long64位二進(jìn)制補(bǔ)碼長整型實(shí)數(shù)float32位IEEE754規(guī)范單精度double64位IEEE754規(guī)范雙精度字符char16位Unicode字符集單字符布爾booleantrue或false布爾值2.2數(shù)據(jù)類型1.整數(shù)類型整數(shù)類型包括整型常量和整型變量。整型常量整型常量有int和long兩種類型,其中l(wèi)ong型整型常量要在數(shù)字后面加大寫的字母L或小寫的字母l。具體的整型常量有三種表示形式:(1)十進(jìn)制整型常量是由0~9、+、–?字符組成,并以+、–號開頭的數(shù)字串。如987,–?654。(2)八進(jìn)制整型常量是由0~7、+、–?字符組成,并以+、–號加0開頭的數(shù)字串。如023(相當(dāng)于十進(jìn)制的19),–?043(相當(dāng)于十進(jìn)制的–35)。(3)十六進(jìn)制整型常量是由0?~?9、+、–、A?~?F、a?~?f、x或X字符組成,并以+、–?號加0x或0X開頭的數(shù)字串。如0x12,–?0X6A。整型變量整型變量的類型有四種:byte、short、int和long。2.2數(shù)據(jù)類型2.浮點(diǎn)數(shù)據(jù)類型浮點(diǎn)數(shù)據(jù)類型就是常說的實(shí)型數(shù)據(jù),也包括實(shí)型常量和實(shí)型變量實(shí)型常量實(shí)型常量有float和double兩種數(shù)據(jù)類型,其中要表示float類型常量必須在數(shù)字后加上字母F或f。具體有兩種表示形式:1)十進(jìn)制數(shù)表示:由數(shù)字、小數(shù)點(diǎn)和正負(fù)號組成,且必須有小數(shù)點(diǎn)。如–?0.12、35.67。2)科學(xué)計數(shù)法表示:由數(shù)字、小數(shù)點(diǎn)、正負(fù)號和字母E/e組成,且在E/e之前必須有數(shù)字,如1.2e3、–?45E8。實(shí)型變量實(shí)型變量的數(shù)據(jù)類型有double和float兩種。double稱為雙精度類型,float稱為單精度類型。雙精度類型比單精度類型的數(shù)據(jù)具有更高的精度和更大的表示范圍。但單精度數(shù)據(jù)比雙精度數(shù)據(jù)所占內(nèi)存空間少且在處理器進(jìn)行處理的速度也比雙精度數(shù)據(jù)類型快一些。2.2數(shù)據(jù)類型3.字符型數(shù)據(jù)字符型數(shù)據(jù)也包括字符型常量和字符型變量。字符型常量是用單引號括起來的一個字符,如:‘A’、‘9’。Java語言中的字符型數(shù)據(jù)是使用16位Unicode(全球文字共享編碼)方式。由于采用Unicode編碼方案,使得Java在處理多語種的能力方面得到大大提高,從而為Java程序在基于不同語種之間實(shí)現(xiàn)平滑移植鋪平了道路。與C/C++相同,Java語言也提供轉(zhuǎn)義符號,以“\”開頭,將其后面的符號轉(zhuǎn)變?yōu)槠渌暮x。如:\ddd表示1到3位八進(jìn)制表示的數(shù)據(jù);\uxxxx表示1到4位十六進(jìn)制表示的數(shù)據(jù);\’表示單引號。另外,Java中字符型數(shù)據(jù)雖然不能用作整型,但可以把它當(dāng)作整型數(shù)據(jù)來操作。2.2數(shù)據(jù)類型4.布爾型數(shù)據(jù)布爾型數(shù)據(jù)只有true和false兩個數(shù)據(jù)值,并且它們不對應(yīng)任何整型值。2.3運(yùn)算符與表達(dá)式1.運(yùn)算符運(yùn)算符按照參與運(yùn)算的操作數(shù)的個數(shù)可分為:單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。除進(jìn)行運(yùn)算外,運(yùn)算符也返回值。這個值和類型取決于運(yùn)算符和操作數(shù)的類型。Java運(yùn)算符主要包括以下幾類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、條件運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符以及賦值運(yùn)算符。2.3運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符算術(shù)運(yùn)算符完成算術(shù)運(yùn)算;包括一元算術(shù)運(yùn)算符(+、–、++、––)和二元算術(shù)運(yùn)算符(+、–、*、/、%);2.3運(yùn)算符與表達(dá)式關(guān)系運(yùn)算符關(guān)系運(yùn)算符是比較兩個數(shù)據(jù)大小關(guān)系的運(yùn)算,常用的關(guān)系運(yùn)算符是:>、>=、<、<=、==、!=。如果一個關(guān)系運(yùn)算表達(dá)式,其運(yùn)算結(jié)果是“真”,則表明該表達(dá)式所設(shè)定的大小關(guān)系成立;否則若運(yùn)算結(jié)果為“假”,則說明了該表達(dá)式所設(shè)定的大小關(guān)系不成立。2.3運(yùn)算符與表達(dá)式邏輯運(yùn)算符邏輯運(yùn)算和關(guān)系運(yùn)算的關(guān)系十分密切,關(guān)系運(yùn)算是運(yùn)算結(jié)果為布爾型量的運(yùn)算,而邏輯運(yùn)算是操作數(shù)和運(yùn)算結(jié)果都是布爾型量的運(yùn)算表2-4邏輯運(yùn)算符運(yùn)算符使用方式返回true的條件&&op1&&op2Op1與op2均為true||op1||op2Op1或op2為真!!opOp為假2.3運(yùn)算符與表達(dá)式位運(yùn)算符位運(yùn)算符是對操作數(shù)以二進(jìn)制位進(jìn)行運(yùn)算,運(yùn)算的結(jié)果為整型數(shù)據(jù)。表2-5位運(yùn)算符運(yùn)算符使用方式操作>>op1>>op2op1中各位都向右移op2位(最高位補(bǔ)符號位)<<op1<<op2op1中各位都向左移op2位>>>op1>>>op2op1中各位都向右移op2位(無符號,補(bǔ)0)&op1&op2按位與|op1|op2按位或^op1^op2按位異或~~op按位取反2.3運(yùn)算符與表達(dá)式賦值運(yùn)算符賦值運(yùn)算符有=和符合賦值運(yùn)算符,符合賦值運(yùn)算符是先對某表達(dá)式進(jìn)行某種運(yùn)算后,把運(yùn)算結(jié)果賦給一個變量.注意:當(dāng)變量的數(shù)據(jù)類型與表達(dá)式計算結(jié)果的數(shù)據(jù)類型不一致時,如果變量數(shù)據(jù)類型級別高,則結(jié)果數(shù)據(jù)類型被自動轉(zhuǎn)化為變量數(shù)據(jù)類型,然后賦給變量。否則,需要使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將結(jié)果轉(zhuǎn)化為變量數(shù)據(jù)類型。2.3運(yùn)算符與表達(dá)式條件運(yùn)算符條件運(yùn)算符為三元運(yùn)算符,其格式為:expression?Statement1:statement2。功能是:若expression為真,則執(zhí)行語句statement1,否則執(zhí)行語句ststement2。例如:c=a>b?a:b。注意:statement1與statement2要有相同返回結(jié)果,且不能是void返回類型。2.3運(yùn)算符與表達(dá)式2.表達(dá)式表達(dá)式由運(yùn)算符、操作數(shù)和方法調(diào)用,按照語言的語法規(guī)則構(gòu)造而成的符號序列。最簡單的表達(dá)式是一個常量或一個變量。表達(dá)式的任務(wù)有兩項(xiàng):執(zhí)行指定的運(yùn)算和返回運(yùn)算結(jié)果。一個運(yùn)算符的使用就是一個表達(dá)式。2.3運(yùn)算符與表達(dá)式3.運(yùn)算符的優(yōu)先級和結(jié)合性使用表達(dá)式要注意:運(yùn)算符的功能;運(yùn)算符的優(yōu)先級;運(yùn)算符的結(jié)合性;對操作數(shù)的要求,包括個數(shù)要求、類型要求和值要求(如/或%都要求右邊的操作數(shù)不為零);表達(dá)式值的類型。對表達(dá)式的運(yùn)算是按運(yùn)算符的優(yōu)先順序從高到低進(jìn)行的。同級的運(yùn)算符按照運(yùn)算符的結(jié)合性進(jìn)行運(yùn)算。說明:1)所有單目運(yùn)算符處于同一級,它們比雙目運(yùn)算符的優(yōu)先級高。2)在雙目運(yùn)算符中,算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符高于位操作和邏輯運(yùn)算符。3)條件運(yùn)算符高于賦值運(yùn)算符,它們優(yōu)先級別最低。4)除了單目運(yùn)算符、條件運(yùn)算符和賦值運(yùn)算符的結(jié)合性為從右到左外,其他均為從左到右。2.4Java的常用的輸入與輸出1.Java的標(biāo)準(zhǔn)輸入與輸出Java語言中的輸入輸出涉及流的概念,借助流類實(shí)現(xiàn)輸入輸出。在Java程序中有一大部分是采用標(biāo)準(zhǔn)輸入輸出。標(biāo)準(zhǔn)輸入是鍵盤的輸入,標(biāo)準(zhǔn)輸出是終端屏幕。標(biāo)準(zhǔn)錯誤輸出也指向屏幕,如果有必要,它也可以指向另一個文件以便和正常輸出區(qū)分。通過系統(tǒng)類System達(dá)到訪問標(biāo)準(zhǔn)輸入輸出的功能。System類管理標(biāo)準(zhǔn)輸入輸出流和錯誤流,有以下三個對象:1)System.out:把輸出送到默認(rèn)的顯示(通常是顯示器)。2)System.in:從標(biāo)準(zhǔn)輸入獲取輸入(通常是鍵盤)。3)System.err:把錯誤信息送到默認(rèn)的顯示。2.4Java的常用的輸入與輸出2.Java的圖形界面輸入與輸出Java語言可以實(shí)現(xiàn)圖形界面效果,Java語言中提供了一個類javax.swing.JOptionPane,該類提供了彈出一個標(biāo)準(zhǔn)對話框的功能,通過標(biāo)準(zhǔn)對話框來提示用戶。往往可以利用它這個性質(zhì)來實(shí)現(xiàn)具有對話框顯示效果的數(shù)據(jù)輸入和輸出。JOptionPane類實(shí)現(xiàn)輸入和輸出對話框的常用方法有:

showInputDialog():用于數(shù)據(jù)輸入;

showMessageDialog():提示用戶某些信息,可以由用戶定義;2.5Java的流程控制語句流程控制語句是程序中基本且關(guān)鍵的部分,它用來控制程序中語句執(zhí)行順序。在傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計中最主要的控制結(jié)構(gòu)有順序、分支和循環(huán)三種基本結(jié)構(gòu)。雖然Java語言是面向?qū)ο蟮恼Z言,但是在語句塊內(nèi)部,仍然需要借助基本流程結(jié)構(gòu)來組織語句完成相應(yīng)的邏輯功能。

2.5Java的流程控制語句1.分支語句分支結(jié)構(gòu)有兩路或多路分支。它們均是根據(jù)條件表達(dá)式的真假來選擇語句的走向。(1).if/else分支語句格式:

if(expression){ statements1; }[else{ statements2; }]2.5Java的流程控制語句(2).嵌套if/else分支語句格式:

if(expression1){ statements1; }elseif(expression2){ statements2; } …

elseif(expressionN){

statementsN; }else{ statements; }2.5Java的流程控制語句(3).switch分支結(jié)構(gòu)格式:switch(expression){casevalue1:statements1;break;casevalue2:statements2;break;…casevalueN:statementsN;break;[default:statements;break;]}2.5Java的流程控制語句使用switch語句要注意:①expression必須是int

、byte、char和short類型之一。②value必須是常量,且所有case子句中的value是不相同的。③default語句是可選的。當(dāng)存在default語句,而無與expression匹配的value時,就執(zhí)行default語句;當(dāng)無default語句,且又無與expression匹配的value時,就跳出switch語句。④break用于執(zhí)行完一個case子句后跳出switch語句。在某些情況下,允許位置上連續(xù)的多個不同的case子句執(zhí)行相同的操作,所以只在該組的最后一個case字句中使用break語句。2.5Java的流程控制語句2.循環(huán)語句循環(huán)結(jié)構(gòu)是指在滿足一定條件下,反復(fù)執(zhí)行某一段語句。Java中有四種循環(huán)語句:while語句,do–while語句、for語句、for-each語句。2.5Java的流程控制語句(1)for循環(huán)結(jié)構(gòu)格式:for(initexpr1;testexpr2;incrementexpr3){statements;}(2)for-each語句格式:for(數(shù)據(jù)類型變量:數(shù)組名)作用:在JDK5.0新增了一個增強(qiáng)for形式的循環(huán)語句,它可以實(shí)現(xiàn)對數(shù)組順序訪問而不依賴于數(shù)組的下標(biāo)和迭代器。就是不通過數(shù)組的下標(biāo)達(dá)到對指定數(shù)據(jù)類型數(shù)組的所有的元素的訪問。2.5Java的流程控制語句(3)while循環(huán)結(jié)構(gòu)格式:while(expression){statements;}作用:先判斷條件表達(dá)式expression是否為真,若是真,則執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完后再轉(zhuǎn)向條件表達(dá)式繼續(xù)做計算和判斷;當(dāng)條件表達(dá)式為假時,則跳出while語句。2.5Java的流程控制語句(3)do~while循環(huán)結(jié)構(gòu)格式:do{statements;}while(expression);作用:與while語句很相似,不同的是do-while語句是先執(zhí)行循環(huán)體一次,再判斷條件表達(dá)式expression是否為真,若為真,則繼續(xù)執(zhí)行循環(huán)體,否則跳出do-while語句。2.5Java的流程控制語句3.一般循環(huán)控制(1).break語句格式:break[label]作用:使程序從一個語句塊內(nèi)部跳轉(zhuǎn)出來。帶標(biāo)號的break語句就從當(dāng)前這個語句塊跳出進(jìn)入標(biāo)號對應(yīng)的語句中。不帶標(biāo)號的break語句是從它所在的switch分支或最內(nèi)層的循環(huán)體中跳轉(zhuǎn)出來,執(zhí)行分支或循環(huán)體后面的語句。(2).continue語句格式:continue[label]作用:對不帶標(biāo)號的continue語句用來結(jié)束本次循環(huán),跳過循環(huán)體中未執(zhí)行的語句,調(diào)整循環(huán)條件后,繼續(xù)判斷條件,以決定是否繼續(xù)循環(huán)。對帶標(biāo)號的continue語句與帶標(biāo)號的break語句一樣。(3).return格式:returnexpr;作用:使流程從方法調(diào)用中返回,表達(dá)式的值就是調(diào)用方法的返回值。2.6數(shù)組在Java語言中,數(shù)組是屬于復(fù)合數(shù)據(jù)類型,是由使用者自己來定義的,它實(shí)際上是一種隱含的“數(shù)組類”的實(shí)例。數(shù)組名就是該實(shí)例的一個引用,同樣數(shù)組元素是對數(shù)組元素類實(shí)例的引用。2.6數(shù)組1.數(shù)組的聲明Java的數(shù)組聲明可以采用與C語言類似的形式。格式:一維數(shù)組:arrayType

arrayName[];二維數(shù)組:arrayType

arrayName[][];Java的數(shù)組聲明語句沒有指明數(shù)組大小。這是因?yàn)镴ava聲明數(shù)組時并不一定需要為數(shù)組分配存儲單元。Java中數(shù)組的存儲單元的分配是在創(chuàng)建數(shù)組時完成的。2.6數(shù)組2.數(shù)組的創(chuàng)建(1)一維數(shù)組的創(chuàng)建分成:數(shù)組元素為簡單數(shù)據(jù)類型數(shù)組元素為復(fù)合數(shù)據(jù)類型2.6數(shù)組數(shù)組元素為簡單數(shù)據(jù)類型①采用靜態(tài)初始化。對于數(shù)據(jù)元素類型是基本數(shù)據(jù)類型的數(shù)組,聲明數(shù)據(jù)與創(chuàng)建數(shù)組空間結(jié)合在一起,用一條語句完成,并同時給出各數(shù)組元素的初始值。格式為:arrayType

arrayName[]={element1[,element2…]};或arrayType[]arrayName={element1[,element2…]};2.6數(shù)組②采用動態(tài)初始化。動態(tài)初始化的操作是由new運(yùn)算符完成的。例如,對前面所聲明的數(shù)組,可以用下面的形式創(chuàng)建一個數(shù)組count[]=newint[10];或者count=newint[10];事實(shí)上數(shù)組的聲明與創(chuàng)建可以合并用一條語句來實(shí)現(xiàn),如:intcount[]=newint[10];或者:int[]count=newint[10];2.6數(shù)組數(shù)組元素為復(fù)合數(shù)據(jù)類型對于數(shù)組元素為復(fù)合數(shù)據(jù)類型的一維數(shù)組的空間創(chuàng)建按以下兩個步驟進(jìn)行。①為數(shù)組元素開辟引用空間,格式:arrayName=newarrayType[arraySize];②為每個數(shù)組元素開辟存儲空間,格式:arrayName[i]=newarrayType(paramList);其中i=0,…arraySize-1。2.6數(shù)組(2)二維數(shù)組的創(chuàng)建分成:數(shù)組元素為簡單數(shù)據(jù)類型數(shù)組元素為復(fù)合數(shù)據(jù)類型2.6數(shù)組數(shù)組元素為簡單數(shù)據(jù)類型①采用靜態(tài)初始化。同一維數(shù)組一樣,聲明數(shù)據(jù)與創(chuàng)建數(shù)組空間結(jié)合在一起,用一條語句完成,并同時給出各數(shù)組元素的初始值。例如:int[][]smallPrime={{2,3},{5,7},{11,13,17}};由于二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以每一維的大小可以不一樣。如上例所示。②采用動態(tài)初始化。也同一維數(shù)組一樣,通過new操作符進(jìn)行空間分配,有兩種方式:直接為每一維分配空間,格式為:arrayName=newarrayType[arraySize1][arraySize2];2.6數(shù)組數(shù)組元素為復(fù)合數(shù)據(jù)類型采用上述動態(tài)分配中的第二種方式進(jìn)行數(shù)組的創(chuàng)建,即首先為數(shù)組的最高維分配引用空間,然后依次為低維分配引用空間,還要為每個數(shù)組元素分配存儲空間。例如:Stringstr[][]=newString[2][];?//最高維的引用空間Str[0]=newString[2];//低維的引用空間Str[1]=newString[2];//低維的引用空間Str[0][0]=newString(“Happy”);?//數(shù)組元素的存儲空間及其數(shù)據(jù)Str[0][1]=newString(“Birthday”)//數(shù)組元素的存儲空間及其數(shù)據(jù)Str[1][0]=newS

溫馨提示

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

評論

0/150

提交評論