Java語言程序設(shè)計(jì):JAVA-2-基本數(shù)據(jù)類型、枚舉類型和數(shù)組_第1頁
Java語言程序設(shè)計(jì):JAVA-2-基本數(shù)據(jù)類型、枚舉類型和數(shù)組_第2頁
Java語言程序設(shè)計(jì):JAVA-2-基本數(shù)據(jù)類型、枚舉類型和數(shù)組_第3頁
Java語言程序設(shè)計(jì):JAVA-2-基本數(shù)據(jù)類型、枚舉類型和數(shù)組_第4頁
Java語言程序設(shè)計(jì):JAVA-2-基本數(shù)據(jù)類型、枚舉類型和數(shù)組_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基本數(shù)據(jù)類型、枚舉類型和數(shù)組本章內(nèi)容標(biāo)識(shí)符、關(guān)鍵字?jǐn)?shù)據(jù)類型、類型轉(zhuǎn)換輸入/輸出數(shù)據(jù)數(shù)組枚舉類型前言

Sun公司在開發(fā)Java語言時(shí)是以C/C++語言為基礎(chǔ)進(jìn)行的,因此,Java語言的基本語法,如變量聲明、方法調(diào)用中的參數(shù)傳遞、運(yùn)算符、流程控制結(jié)構(gòu)等,都與C/C++語言非常相似。與C++一致的語法機(jī)制:數(shù)據(jù)類型、表達(dá)式、程序流控制、結(jié)構(gòu)化、異常處理等;與C++不同的語法機(jī)制:

類、接口(Interface)、程序包(Package)、自動(dòng)內(nèi)存回收以及多線程。Java的語法機(jī)制概述類:最重要、最基本的語法設(shè)施,類的定義與繼承與C++類似,主要區(qū)別:

Java不允許多重繼承,多重繼承必須通過接口實(shí)現(xiàn)。Java引進(jìn)了abstract和final修飾詞。帶abstract的類稱為抽象類,只能作為父類使用,不能直接產(chǎn)生實(shí)例對(duì)象。帶final的類不能用作父類被繼承,帶final的屬性在定義時(shí)必須賦初值并成為常量,在方法定義時(shí),帶final將防止子類重寫該方法。Java與C++不同的語法機(jī)制接口是一種抽象類,其中只能出現(xiàn)靜態(tài)常量或抽象方法定義。

主要目的是實(shí)現(xiàn)多重繼承功能,避免C++在多重繼承語義上的復(fù)雜性。一個(gè)Java類可以實(shí)現(xiàn)(繼承)多個(gè)接口。Java與C++不同的語法機(jī)制程序包是一些相關(guān)類或接口的集合。Java提供包括可重用類標(biāo)準(zhǔn)程序包,用戶可自定義程序包。通過import語句將程序包引入應(yīng)用程序。自動(dòng)內(nèi)存回收J(rèn)ava取消了指針類型,所有動(dòng)態(tài)內(nèi)存請(qǐng)求均通過new運(yùn)算符,并且得到的不是指針而是引用。系統(tǒng)進(jìn)行內(nèi)存回收。多線程依賴操作系統(tǒng)提供的線程管理的API,與平臺(tái)綁定。語言級(jí)支持多線程:忽略操作系統(tǒng)多線程機(jī)制的差異,軟件具有更好的可靠性和可移植性。Java與C++不同的語法機(jī)制

1標(biāo)識(shí)符與關(guān)鍵字

1.標(biāo)識(shí)符用來標(biāo)識(shí)類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識(shí)符。簡(jiǎn)單地說,標(biāo)識(shí)符就是一個(gè)名字。

2.Unicode字符集

Java語言使用Unicode標(biāo)準(zhǔn)字符集,最多可以識(shí)別65536個(gè)字符。Unicode字符集的前128個(gè)字符剛好是ASCII碼表。Java所使用的字母不僅包括通常的字母a、b、c等,也包括漢語中的漢字、朝鮮文、俄文、希臘字母以及其它許多語言中的文字。

3.關(guān)鍵字關(guān)鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞。不可以把關(guān)鍵字做為標(biāo)識(shí)符來用。

采用Unicode國(guó)際標(biāo)準(zhǔn)字符集:英文字母、漢字、日文……由字母、數(shù)字、下劃線或$符號(hào)組成以字母、下劃線或$符開頭數(shù)字不能作為第一個(gè)字符區(qū)分大小寫不能使用關(guān)鍵字標(biāo)識(shí)符下面的標(biāo)識(shí)符哪些是合法的,哪些是非法的:

$Str,_var1,myVar,98.3,HelloWorld,class標(biāo)識(shí)符風(fēng)格約定“_”和“$”不作為變量名,方法名開頭變量名、方法名首單詞小寫,其余單詞只有首字母大寫。如:anyVariableWorld接口名、類名首單詞的首字母大寫。如:HelloWord常量:完全大寫。如:MAXIMUM_SIZE方法名應(yīng)該使用動(dòng)詞,類名和接口名應(yīng)該使用名詞。變量名應(yīng)該有一定意義。*當(dāng)前不使用**為Java2增加的關(guān)鍵字abstractdoimplementsprivatethisenumbooleandoubleimportprotectedthrowstrictfp**breakelseinstanceof

publicthrowsconst*byteextendsintreturntransientgoto*casefalseinterfaceshorttruesizeofcatchfinallongstatictrycharfianllynativestrictfpvoidclassfloatnewsupervolatilecontinuefornullswitchwhiledefaultifpackage

assertsynchronized

2數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型數(shù)值型文本型/字符型(char)邏輯型/布爾型(boolean)整數(shù)類型(byte,short,int,long)浮點(diǎn)類型(float,double)類(class)接口(interface)枚舉類型(enum)邏輯型/布爾型-boolean

(占1個(gè)字節(jié))true和false,不對(duì)應(yīng)任何數(shù)值(1或0)。

如:booleantruth,ok=true;boolean

關(guān)閉=false;

數(shù)據(jù)類型—邏輯型字節(jié)型-byte(占1個(gè)字節(jié))

無字節(jié)型常量表示法,但可以把-27~27-1之間的整型常量賦值給字節(jié)型變量。

bytex=-12,tom=28,漂亮=98;

短整型-short(占2個(gè)字節(jié))

無短整型常量表示法,但可以把-215~215-1之間的整型常量賦值給短整型變量。shortx=12,y=1234;

整型-int(占4個(gè)字節(jié))

intx=12,平均=9898,jiafei;

十進(jìn)制(24),十六進(jìn)制(0x18),八進(jìn)制(030)長(zhǎng)整型-long(占8個(gè)字節(jié))

longwidth=12L,height=2005L,length;十進(jìn)制(24L),十六進(jìn)制(0x18L),八進(jìn)制(030L)

整數(shù)類型文本型-char和String(占2個(gè)字節(jié))

char:16位的unicode(國(guó)際碼)字符。unicode字符集是一套字符編碼系統(tǒng),可以支持各類文字的字符,達(dá)34168個(gè)字符??捎梅葱备芎蟾?位八進(jìn)制數(shù)或反斜杠后跟u,再跟4位十六進(jìn)制數(shù)表示。

數(shù)據(jù)類型—文本型1.常量:例如:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘の’等。

2.變量:

使用關(guān)鍵字char來聲明char型變量。例如:charch=‘A’,home=‘家’,handsome=‘酷’;

3.轉(zhuǎn)意字符常量:有些字符(如回車符)不能通過鍵盤輸入到字符串或程序中,就需要使用轉(zhuǎn)意字符常量,例如:\n(換行),\b(退格),\t(水平制表),\‘(單引號(hào)),\“(雙引號(hào)),\\(反斜線)等。4.要觀察一個(gè)字符在Unicode表中的順序位置,可以使用int型顯示轉(zhuǎn)換,如(int)‘A'。5.如果要得到一個(gè)0~65536之間的數(shù)所代表的Unicode表中相應(yīng)位置上的字符

必須使用char型顯示轉(zhuǎn)換。數(shù)據(jù)類型舉例publicclassExample2_1{publicstaticvoidmain(Stringargs[]){charchinaWord='好',japanWord='ぁ';charyou='\u4F60';

intposition=20320;

System.out.println("漢字:"+chinaWord+"的位置:"+(int)chinaWord);

System.out.println("日文:"+japanWord+"的位置:"+(int)japanWord);

System.out.println(position+"位置上的字符是:"+(char)position);position=21319;

System.out.println(position+"位置上的字符是:"+(char)position);

System.out.println("you:"+you);}}文本型-char和String(占2個(gè)字節(jié))

String是一個(gè)類

如:Stringgreeting=“GoodMorning!\n”;

String對(duì)象表示的字符串不能修改。如需修改,應(yīng)使用StringBuffer類。

數(shù)據(jù)類型—文本型

浮點(diǎn)類型單精度浮點(diǎn)數(shù)-float

(占4個(gè)字節(jié))常量:453.5439f,21379.987F,231.0f(小數(shù)表示法),2e40f(2乘10的40次方,指數(shù)表示法)。常量后面必須要有后綴“f”或“F”。

變量:使用關(guān)鍵字float來聲明float型變量,例如:floatx=22.76f,tom=1234.987f,weight=1e-12F;

精度:float變量在存儲(chǔ)float型數(shù)據(jù)時(shí)保留8位有效數(shù)字,實(shí)際精度取決于具體數(shù)值。雙精度浮點(diǎn)數(shù)-double

(占8個(gè)字節(jié))

常量:2389.539d,2318908.987,0.05(小數(shù)表示法),1e-90(1乘10的-90次方,指數(shù)表示法)。后面可以有后綴“d”或“D”,允許省略。變量:使用關(guān)鍵字double來聲明double型變量,例如:doubleheight=23.345,width=34.56D,length=1e12;

精度:double變量在存儲(chǔ)double型數(shù)據(jù)時(shí)保留16位有效數(shù)字,實(shí)際精度取決于具體數(shù)值。

3類型轉(zhuǎn)換數(shù)據(jù)類型精度

byte short char int long float double自動(dòng)類型轉(zhuǎn)換(也叫隱式類型轉(zhuǎn)換)表達(dá)式的數(shù)據(jù)類型自動(dòng)提升所有的byte型、short型和char的值將被提升到int型。如果一個(gè)操作數(shù)是long型,計(jì)算結(jié)果就是long型;如果一個(gè)操作數(shù)是float型,計(jì)算結(jié)果就是float型;如果一個(gè)操作數(shù)是double型,計(jì)算結(jié)果就是double型強(qiáng)制類型轉(zhuǎn)換(也叫顯式類型轉(zhuǎn)換)(低數(shù)據(jù)類型)變量或常量

當(dāng)把一個(gè)int類型的常量賦值給一個(gè)byte類型或者short類型的時(shí)候,不可以超出這些變量的取值范圍,否則必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換運(yùn)算。

類型轉(zhuǎn)換舉例publicclassExample2_2{publicstaticvoidmain(Stringargs[]){byteb=22;

intn=129;floatf=123456.6789f;doubled=123456789.123456789;

System.out.println("b="+b);

System.out.println("n="+n);

System.out.println("f="+f);

System.out.println("d="+d);b=(byte)n;//導(dǎo)致精度的損失.f=(float)d;//導(dǎo)致精度的損失

System.out.println("b="+b);

System.out.println("f="+f);}}

4輸入/輸出數(shù)據(jù)1輸入基本型數(shù)據(jù)

Scanner是JDK1.5新增的一個(gè)類,可以使用該類創(chuàng)建一個(gè)對(duì)象:

◆使用Scanner類創(chuàng)建一個(gè)對(duì)象:

Scannerreader=newScanner(System.in);

◆reader對(duì)象調(diào)用下列方法,讀取用戶在命令行(例如,MS-DOS窗口)輸入的各種基本類型數(shù)據(jù):

nextBoolean()、nextByte()、nextShort()、nextInt()

nextLong()、nextFloat()、nextDouble()。

上述方法執(zhí)行時(shí)都會(huì)堵塞,程序等待用戶在命令行輸入數(shù)據(jù)回車確認(rèn)。importjava.util.Scanner;publicclassExample2_3{publicstaticvoidmain(Stringargs[]){

System.out.println("請(qǐng)輸入若干個(gè)數(shù),每輸入一個(gè)數(shù)回車確認(rèn)");

System.out.println("最后輸入數(shù)字0結(jié)束輸入操作");Scannerreader=newScanner(System.in);doublesum=0;doublex=reader.nextDouble();

while(x!=0){sum=sum+x;x=reader.nextDouble();}

System.out.println("sum="+sum);}}用戶在鍵盤依次輸入若干個(gè)數(shù)字,每輸入一個(gè)數(shù)字都按回車鍵確認(rèn),在鍵盤輸入數(shù)0結(jié)束整個(gè)的輸入操作過程,程序計(jì)算出這些數(shù)的和。

2輸出基本型數(shù)據(jù)

◆用System.out.println()或System.out.print()可輸出串值、表達(dá)式的值。

◆允許使用并置符號(hào):“+”將變量、表達(dá)式或一個(gè)常數(shù)值與一個(gè)字符串并置一起輸出,如:System.out.println(m+"個(gè)數(shù)的和為"+sum);◆JDK1.5新增了和C語言中printf函數(shù)類似的數(shù)據(jù)輸出方法,格式如下:System.out.printf("格式控制部分",表達(dá)式1,表達(dá)式2,…表達(dá)式n)

格式控制部分由格式控制符號(hào):%d、%c、%f、%s和普通的字符組成,普通字符原樣輸出。格式符號(hào)用來輸出表達(dá)式的值。

%d:輸出int類型數(shù)據(jù)值%c:輸出char型數(shù)據(jù)。

%f:輸出浮點(diǎn)型數(shù)據(jù),小數(shù)部分最多保留6位

%s:輸出字符串?dāng)?shù)據(jù)。輸出數(shù)據(jù)時(shí)也可以控制數(shù)據(jù)在命令行的位置,例如:

%md:輸出的int型數(shù)據(jù)占m列

%m.nf:輸出的浮點(diǎn)型數(shù)據(jù)占m列,小數(shù)點(diǎn)保留n位。5數(shù)組數(shù)組中的元素都是同一種類型。數(shù)組的長(zhǎng)度在創(chuàng)建的時(shí)候確定,并且在創(chuàng)建后固定不變。如果要建立存儲(chǔ)不同類型數(shù)據(jù)的集合,或者要求集合的長(zhǎng)度可以動(dòng)態(tài)變化,可以使用Collection(集合)類。數(shù)組1數(shù)組:具有相同數(shù)據(jù)類型變量的集合。2在Java語言中,將數(shù)組視為對(duì)象。3定義一個(gè)一維普通數(shù)據(jù)類型數(shù)組對(duì)象變量三種方法:4數(shù)組對(duì)象的賦值:基本數(shù)據(jù)類型[]變量名;//合法,提倡基本數(shù)據(jù)類型[]變量名;//合法,不提倡基本數(shù)據(jù)類型變量名[];//合法,不提倡變量名=new基本數(shù)據(jù)類型[n];

//創(chuàng)建一個(gè)含有n個(gè)元素的數(shù)組對(duì)象例:s=newchar[20];//創(chuàng)建有20個(gè)字符的數(shù)組publicclassArray2{ publicstaticvoidmain(String[]args){

int[]a=newint[4];

intsum=0;

a[0]=90;a[1]=80;a[2]=75;a[3]=85;

for(inti=0;i<a.length;i++) sum+=a[i];

System.out.println("總分:"+sum);

System.out.println("平均分:"+(double)sum/a.length); }}說明:1數(shù)組的元素可以看作數(shù)組對(duì)象的公有成員變量,但在使用時(shí)必須使用“數(shù)組對(duì)象名[元素下標(biāo)]”的格式;2length是數(shù)組對(duì)象的一個(gè)公有成員變量,用來表示數(shù)組的長(zhǎng)度。數(shù)組舉例1總分:330平均分:82.5數(shù)組舉例2publicclassArray3{ publicstaticvoidmain(String[]args){

int[]a=newint[]{12,22,37,48,59};

double[]b={1.2,-2.7,9.53,3.0};

System.out.println(a.length);

System.out.println(b.length); System.out.println(a[1]); System.out.println(b[2]);}}說明:一維數(shù)組初始化的兩種方式:①int[]a=newint[]{1,2,3,4,5};②int[]b={6,7,8,9};兩種初始化方式都合法,提倡第一種。54229.53數(shù)組的引用

數(shù)組屬于引用型變量,因此兩個(gè)相同類型的數(shù)組如果具有相同的引用,它們就有完全相同的元素。例如,對(duì)于inta[]={1,2,3},b[]={4,5};數(shù)組變量a和b分別存放著引用0x35ce36和0x757aef。

如果使用了賦值語句(a和b的類型必須相同)

a=b;a中存放的引用和b的相同,系統(tǒng)將釋放最初分配給數(shù)組a的元素,使得a的元素和b的元素相同。publicclassExample2_4{publicstaticvoidmain(Stringargs[]){

inta[]={1,2,3,4};

intb[]={100,200,300};

System.out.println("數(shù)組a的元素個(gè)數(shù)="+a.length);

System.out.println("數(shù)組b的元素個(gè)數(shù)="+b.length);

System.out.println("數(shù)組a的引用="+a);

System.out.println("數(shù)組b的引用="+b);a=b;

System.out.println("數(shù)組a的元素個(gè)數(shù)="+a.length);

System.out.println("數(shù)組b的元素個(gè)數(shù)="+b.length);System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);System.out.print("b[0]="+b[0]+",b[1]="+b[1]+",b[2]="+b[2]);}}二維數(shù)組int[][]a;//聲明一個(gè)整型二維數(shù)組對(duì)象變量a=newint[3][];//生成一個(gè)含有三個(gè)元素的“一維數(shù)組”,數(shù)組中的每個(gè)元素都是一個(gè)整型一維數(shù)組的對(duì)象變量。a[0]=newint[5];a[1]=newint[4];a[2]=newint[3];二維數(shù)組:數(shù)組的數(shù)組。二維數(shù)組舉例publicclassArray8{ publicstaticvoidmain(String[]args){

int[][]a; a=newint[3][]; a[0]=newint[5]; a[1]=newint[4]; a[2]=new

溫馨提示

  • 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)論