版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第2章 基本數(shù)據(jù)類型和數(shù)組,本章導(dǎo)讀 1. 標(biāo)識符和關(guān)鍵字 2. 基本數(shù)據(jù)類型 3. 基本數(shù)據(jù)類型的轉(zhuǎn)換 4. 數(shù)據(jù)的輸入與輸出 5數(shù)組,2.1 標(biāo)識符和關(guān)鍵字,1標(biāo)識符 用來標(biāo)識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識符。簡單地說,標(biāo)識符就是一個(gè)名字。Java語言規(guī)定標(biāo)識符由字母、下劃線、美元符號和數(shù)字組成,并且第一個(gè)字符不能是數(shù)字。標(biāo)識符中的字母是區(qū)分大小寫的,Beijing 和beijing是不同的標(biāo)識符。 2 關(guān)鍵字 關(guān)鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞,它們在程序上有著不同的用途,不可以把關(guān)鍵詞作為名字來用。,返回,標(biāo)識符 :為程序中的各個(gè)元
2、素進(jìn)行命名 . 一般地,在Java 中標(biāo)識符是以字母、下劃線(_)、美元符號($)等其它貨幣符號(如, )開始的一個(gè)字符序列,后面可以跟字母、下劃線、美元符號、數(shù)字等字符。 Java語言使用Unicode字符集 ,用16位二進(jìn)制表示一個(gè)字符,并且在0255編碼區(qū)與通用的ASCII字符集兼容。 標(biāo)識符是大小寫敏感的,沒有最大長度的限制,不能和關(guān)鍵字相同,標(biāo)識符,總體來說定義標(biāo)識符可以使用的字符包括: 大小寫字母、數(shù)字; Unicode字符集中編號大于0 xC0的所有字符。 凡是用Character.isJavaIdentifierStart() 返回true,都可作為首字符,Character.
3、 isJavaIdentifierPart()返回true,都可作為標(biāo)識符的一部分。 合法的標(biāo)識符: Body,_test,$hello 非法標(biāo)識符: 5Test,hello*,world#,class 注意:在中文環(huán)境下,可以使用漢字作為標(biāo)識符。例如,int 中文=5;,標(biāo)識符,所有的關(guān)鍵字都是小寫的。如果被大寫,就不是關(guān)鍵字了 。 用于數(shù)據(jù)類型的關(guān)鍵字 byte short int long float double char boolean 用于流程控制語句的關(guān)鍵字 if else switch case default do while for break continue 方法、類型
4、、變量的修飾關(guān)鍵字 private public protected final static abstract synchronized volatile 異常處理關(guān)鍵字 try catch finally throw throws,關(guān)鍵字,對象相關(guān)關(guān)鍵字 new extends implements class instanceof this super 字面值常量關(guān)鍵字 false true null 方法相關(guān)關(guān)鍵字 return void 包相關(guān)關(guān)鍵字 package import,關(guān)鍵字,單行注釋:以“/”開頭,至該行結(jié)尾,其格式如下: /注釋文本 多行注釋:以“/*”開始,遇到“*
5、/”結(jié)束,格式如下 /* 注釋文本 */ 文檔注釋:用于注釋從Java源程序產(chǎn)生的一個(gè)HTML幫助文檔,可以使用JDK提供的工具Javadoc從源程序中提取這種注釋,為程序提供文檔說明。格式如下: /*注釋文本 *注釋文本 * */,注釋,Java使用一些特殊字符作為分隔符: ;(分號):語句結(jié)束符 ,(逗號):分隔變量中連續(xù)的標(biāo)示符,或者在for語句中連接語句 .(句號):用于分隔包、子包和類,或者分隔應(yīng)用變臉中的變量和方法 ()(括號):用于在方法定義和訪問中將參數(shù)表括起來,或者在表達(dá)式中定義運(yùn)算的優(yōu)先次序,或者在控制語句中將表達(dá)式和類型轉(zhuǎn)換括起來 (方括號):用于聲明數(shù)組類型,及應(yīng)用數(shù)組
6、的元素值 (花括號):將若干語句序列括起來作為一個(gè)程序代碼塊,或者為數(shù)組初始化賦值,分隔符,2.2 基本數(shù)據(jù)類型,2.2 基本數(shù)據(jù)類型,基本數(shù)據(jù)類型也稱作簡單數(shù)據(jù)類型。Java語言有8種簡單數(shù)據(jù)類型,分別是: boolean、byte 、short、int、long、 float、double、char。 這8種數(shù)據(jù)類型習(xí)慣上可分為4大類型: 邏輯類型:boolean 字符類型:char 整數(shù)類型:byte、short、int、long 浮點(diǎn)類型:float、double,Java的簡單數(shù)據(jù)類型都有固定的數(shù)據(jù)位,不隨運(yùn)行平臺的變化而變化。引用類型都是用類或?qū)ο髮?shí)現(xiàn)的。,布爾類型 用關(guān)鍵字boo
7、lean表示,只有true和false兩個(gè)值,且它們不對應(yīng)任何整數(shù)值,經(jīng)常在流控制語句中使用,例如: boolean b=false;,布爾類型,字符類型,一個(gè)字符用一個(gè)16位的Unicode碼表示 所有可見的ASCII碼字符都可以用單引號括起來成為字符,如a、A、#等 一些控制字符不能直接顯示,可以利用轉(zhuǎn)義字符表示,字符常量,字符常量是用單引號括起來的一個(gè)字符,例如A,用雙引號括起來的是字符串,如:”A”、”hello world”。 同樣,字符常量也可以用轉(zhuǎn)義字符直接表示,例如: A的Unicode碼是u0061 中的Unicode碼是u4e2d 整數(shù)和字符型數(shù)據(jù)在一起運(yùn)算 字符向整數(shù)轉(zhuǎn)換
8、,字符變量,字符型變量用char表示,使用Unicode字符集,在機(jī)器中占16位,范圍為065535。 字符變量的定義如下: char c,c1=a; 其中定義了兩個(gè)字符變量c和c1,且c1初始化為a Java的字符類型與整型不同,不能作為整數(shù)使用,但是可以吧整型和字符型數(shù)據(jù)一起運(yùn)算,從字符型向整型發(fā)生自動(dòng)類型轉(zhuǎn)換。從整型向字符型轉(zhuǎn)換時(shí)需要強(qiáng)制類型轉(zhuǎn)換。,字符型與整型,Java的字符類型與整型不同,不能作為整數(shù)使用,但是可以吧整型和字符型數(shù)據(jù)一起運(yùn)算,從字符型向整型發(fā)生自動(dòng)類型轉(zhuǎn)換。從整型向字符型轉(zhuǎn)換時(shí)需要強(qiáng)制類型轉(zhuǎn)換。例如: int i=5; char one=1; int j=a; /字符
9、型向整型自動(dòng)類型轉(zhuǎn)換 char c=(char)(i+one+j);,Java中的整數(shù)有三種進(jìn)制形式表示: 十進(jìn)制:用09的數(shù)值表示,首位不能為0,例如:124,-100; 八進(jìn)制:以0開頭,后跟多個(gè)07之間的數(shù)字,如0134; 十六進(jìn)制:以0 x或者0X開頭,后跟多個(gè)09之間的數(shù)字、或AF之間的的大寫字、或者af之間的小寫字母。af或者A-F分別表示1015,例如,0 x23FE,等于十進(jìn)制數(shù)9214。,整數(shù)類型,整數(shù)類型,在表示long型常量時(shí),需要在數(shù)字后面加上后綴L或者l。例如3L表示一個(gè)long型的常量,而不是int型常量。例如: byte b=5; short s; long j=
10、300; /正確,可以將int常量賦給long變量 long j1=300L; int i1=4L;/錯(cuò)誤,不能把long值賦給int變量,浮點(diǎn)數(shù)表示形式,標(biāo)準(zhǔn)計(jì)數(shù)法:由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成,如2.0和345.67 科學(xué)計(jì)數(shù)法:由十進(jìn)制數(shù)、小數(shù)點(diǎn)、小數(shù)和指數(shù)構(gòu)成,指數(shù)部分由字母E或e跟上正負(fù)號的整數(shù)表示,如,345.67可以表示為3.4567E+2,浮點(diǎn)類型,一個(gè)浮點(diǎn)數(shù)隱含為double型。在一個(gè)浮點(diǎn)數(shù)后加字母F或f,表示float型。常量值3.45的類型是double;3.45F的類型是float。,2.3 基本數(shù)據(jù)類型的轉(zhuǎn)換,基本數(shù)據(jù)類型的轉(zhuǎn)換就是把一種基本數(shù)據(jù)類型變量轉(zhuǎn)變成另一
11、種基本類型變量。下列基本類型會(huì)涉及數(shù)據(jù)轉(zhuǎn)換,不包括邏輯類型和字符類型。我們將這些類型按精度從“低”到“高”排列了順序: byte short int long float double 當(dāng)把級別低的變量的值賦給級別高的變量時(shí),系統(tǒng)自動(dòng)完成數(shù)據(jù)類型的轉(zhuǎn)換,如int型轉(zhuǎn)換成long型。當(dāng)把級別高的變量的值賦給級別低的變量時(shí),必須使用顯示類型轉(zhuǎn)換運(yùn)算。顯示轉(zhuǎn)換的格式: (類型名)要轉(zhuǎn)換的值;,自動(dòng)類型轉(zhuǎn)換 從低級到高級發(fā)生自動(dòng)類型轉(zhuǎn)換。從表達(dá)范圍小的類型向表達(dá)范圍大的類型發(fā)生自動(dòng)類型轉(zhuǎn)換。不同數(shù)據(jù)類型的轉(zhuǎn)換如下所示: 低- -高 byte,short,char- int- long- float-
12、double 注意:byte,short和char在一起運(yùn)算時(shí),首先轉(zhuǎn)換為int類型進(jìn)行運(yùn)算。 【例2-1】分析下面程序中的錯(cuò)誤。 byte b1=5; short s1=6; short s2 ; s2=b1+s1;,2.3 基本數(shù)據(jù)類型的轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換 由高級向低級數(shù)據(jù)類型轉(zhuǎn)換時(shí),需要強(qiáng)制類型轉(zhuǎn)換。例如: int i65; char c; c=(char)i; / 把int型變量轉(zhuǎn)換成char型,需要強(qiáng)制類型轉(zhuǎn)換。,2.3 基本數(shù)據(jù)類型的轉(zhuǎn)換,2.3 基本數(shù)據(jù)類型的轉(zhuǎn)換,例如 int x=(int)34.89; 輸出x將是34,強(qiáng)制轉(zhuǎn)換運(yùn)算可能導(dǎo)致精度的損失。當(dāng)把一個(gè)整數(shù)賦值給一個(gè)by
13、te、short、int或long型變量時(shí),不可以超出這些變量的取值范圍,否則必須進(jìn)行類型轉(zhuǎn)換運(yùn)算。 下面我們看一個(gè)例子: 程序運(yùn)行結(jié)果見右圖:,返回,2.4 數(shù)據(jù)的輸入與輸出,由于C語言出現(xiàn)的比較早,那個(gè)時(shí)候還沒有圖形用戶界面的概念(Graphics User Interface),因此,C語言提供了許多用來輸入、輸出數(shù)據(jù)的函數(shù),例如printf 、scanf等。 Java不象C,提供在命令行進(jìn)行數(shù)據(jù)輸入、輸出的功能不多。 關(guān)于輸入、輸出我們將在第九章詳細(xì)介紹,現(xiàn)在只需知道它的作用是在命令行窗口(例如,MS-DOS窗口)輸出數(shù)據(jù)即可。Sun公司新推出的JDK1.5又新增了一些在命令行進(jìn)行數(shù)據(jù)
14、輸入、輸出的功能。,2.4 數(shù)據(jù)的輸入與輸出,1數(shù)據(jù)輸出: System.out.printf System.out.printf的功能完全類似C語言中的printf函數(shù)。pringf的一般格式: printf(格式控制部分,表達(dá)式1,表達(dá)式2,表達(dá)式n); 這里的用法與C語言相同,這里不再累述。 下面我們看一個(gè)例子,來進(jìn)一步了解 System.out.printf 數(shù)據(jù)輸出:,2.4 數(shù)據(jù)的輸入與輸出,2數(shù)據(jù)的輸入:Scanner Scanner是SDK1.5新增的一個(gè)類,可以使用該類創(chuàng)建一個(gè)對象: Scanner reader=new Scanner(System.in); 然后reade
15、r對象調(diào)用下列方法(函數(shù)),讀取用戶在命令行輸入的各種數(shù)據(jù)類型, nextByte(), nextDouble(), nextFloat(), nextInt(), nextLine(),nextLong(), nextShort()。,2.4 數(shù)據(jù)的輸入與輸出,上述方法執(zhí)行時(shí)都會(huì)堵塞,等待你在命令行輸入數(shù)據(jù)回車確認(rèn)。 下面讓我們來看一個(gè)例子,來更好的了解Scanner語句,在這個(gè)例子中,用戶在鍵盤依次輸入若干個(gè)數(shù)字,每輸入一個(gè)數(shù)字都需要按回車鍵確認(rèn),最后在鍵盤輸入一個(gè)非數(shù)字字符結(jié)束整個(gè)的輸入操作過程。程序?qū)⒂?jì)算出這些數(shù)的和及平均值。,返回,import java.util.*; public
16、 class Example2_4 public static void main (String args ) Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble() double x=reader.nextDouble(); m=m+1; sum=sum+x; System.out.printf(%d個(gè)數(shù)的和為%fn,m,sum); System.out.printf(%d個(gè)數(shù)的平均值是%fn,m,sum/m); ,2.5 數(shù)組,數(shù)組是相同類型的數(shù)據(jù)按順序組成的一種
17、復(fù)合數(shù)據(jù)類型。通過數(shù)組名加數(shù)組下標(biāo)來使用數(shù)組中的數(shù)據(jù)。下標(biāo)從0開始。 1聲明數(shù)組 聲明數(shù)組包括數(shù)組的名字、數(shù)組包含的元素的數(shù)據(jù)類型。 聲明一維數(shù)組有下列兩種格式: 數(shù)組元素類型 數(shù)組名字 ; 數(shù)組元素類型 數(shù)組名字;,一維數(shù)組的定義格式如下: int a ; int a; 這里只有數(shù)組變量的定義,沒有為數(shù)組元素分配空間,只為數(shù)組的引用分配了空間,a目前為一個(gè)空的引用。 在聲明數(shù)組時(shí),可以為數(shù)組賦初值。例如: int a =0,1,2,3,4;,2.5 數(shù)組,數(shù)組定義之后,需要new運(yùn)算符為其分配空間,在分配空間時(shí)確定數(shù)組的大小,大小一旦確定,將不能改變,但可以再次使用new為其分配空間。具體格
18、式如下: = new ; 例如:a=new int5; a=new int10; 上例,創(chuàng)建了一個(gè)包含個(gè)元素的數(shù)組,每個(gè)元素被自動(dòng)初始化為 。也可以將數(shù)組定義和初始化同時(shí)進(jìn)行,例如: int a =new int5 每個(gè)數(shù)組都有一個(gè)屬性length,指明它的長度,使用new為數(shù)組分配空間,變量的自動(dòng)化初始值,一維數(shù)組的圖形表示,每一個(gè)數(shù)組都有一個(gè)length屬性,指明其長度,返回一個(gè)整數(shù)值,例如: a.length 通過數(shù)組名和下標(biāo)來訪問數(shù)組成員,java的數(shù)據(jù)下標(biāo)從0開始到length-1,數(shù)組的使用,public class ArrayAvg public static void main
19、(String args) final int ARRAY_SIZE=10; int a=new intARRAY_SIZE; int i=0; int sum=0; double avg=0.0; for(i=0;ia.length;i+) /使用了length屬性 ai=(int)(Math.random()*10); /產(chǎn)生隨機(jī)數(shù) sum=sum+ai; /計(jì)算和 System.out.print(“ ”+ai); /輸出 System.out.println(); avg=(double)sum/a.length; /先轉(zhuǎn)換為浮點(diǎn)數(shù),再計(jì)算 System.out.println(average=+avg); ,程序舉例:求一維數(shù)組的平均值,最常用的二維數(shù)組是一個(gè)特殊的一維數(shù)組,它的每個(gè)元素都是一個(gè)一維數(shù)組,又叫做數(shù)組的數(shù)組 ,格式如下: int two; int two; 這里只有變量的定義,沒有分配內(nèi)存空間。 在定義二維數(shù)組時(shí)也可以賦初值,將數(shù)組元素的值用多層括號括起來,例如: int two=0,1,2,3,4,5;,二維數(shù)組,int two =new int23; 或者 int two ; two=new int2 3 ; 二維數(shù)組還有另外一種初始化方式,就是從最高維開始,分別為每一維分配空間,這種情況下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年房地產(chǎn)投資的法律規(guī)定與合規(guī)體系
- 2025年衛(wèi)生院崗前人事考試試題及答案
- 2025年傳感器筆試題目及答案
- 2025年陜西年底人事考試及答案
- 2025年永定縣教師編制筆試及答案
- 2026年工程結(jié)構(gòu)非線性分析的案例分析
- 2025年北師大文字學(xué)博筆試及答案
- 2025年張家港醫(yī)生事業(yè)編考試及答案
- 2026年清明節(jié)的春游活動(dòng)
- 2025年安徽皖維集團(tuán)招聘筆試及答案
- H31341 V2.5 HCIP-TranSmission 傳輸網(wǎng)練習(xí)試題及答案
- 汽車吊、隨車吊起重吊裝施工方案
- 2024年10月自考03291人際關(guān)系學(xué)試題及答案
- 下肢靜脈曲張課件
- (高清版)DZT 0428-2023 固體礦產(chǎn)勘查設(shè)計(jì)規(guī)范
- XXX縣村鎮(zhèn)空氣源熱泵區(qū)域集中供熱項(xiàng)目可行性研究報(bào)告
- 湖州昆侖億恩科電池材料有限公司年產(chǎn)40000噸鋰離子電池電解液項(xiàng)目環(huán)境影響報(bào)告
- 幼兒園班級體弱兒管理總結(jié)
- 肥胖患者圍術(shù)期麻醉管理
- 核酸印跡與分子雜交
- 金屬罐三片罐結(jié)構(gòu)分析
評論
0/150
提交評論