




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第3周Java基本語法3.1Java語言的基本元素3.2數(shù)據(jù)類型3.3運(yùn)算符與表達(dá)式3.4數(shù)組習(xí)題例3.1編寫一個簡單的JavaApplication源程序:Welcome2.java。程序的運(yùn)行結(jié)果是輸出一句話“歡迎使用Java”,如圖3.1所示。3.1Java語言的基本元素//這是一個簡單的JavaApplication源程序classWelcome2{
publicstaticvoidmain(Stringargs[]){
System.out.println(″歡迎使用Java″); }//結(jié)束main方法定義}//結(jié)束類Welcome2定義圖3.1可以知道Java語言包含標(biāo)識符、關(guān)鍵字、運(yùn)算符和分隔符等元素。這些元素有著不同的語法含義和組成規(guī)則,它們互相配合,共同組成Java的語句。在Java中,變量以及類和方法都需要一定的名稱,這種名稱就叫做標(biāo)識符。所有的標(biāo)識符都必須是以一個字母、下劃線或美元符號“$”開頭的一串字符,后面的字符可以包含字母、數(shù)字、下劃線和美元符號。表1標(biāo)識符命名正誤對照表3.1.1標(biāo)識符合法標(biāo)識符非法標(biāo)識符合法標(biāo)識符非法標(biāo)識符MyClassclassi2anIntintONE_HUNDREDONE-HUNDREDgroup77group
標(biāo)識符是由程序員自己定義的名稱,可按上面的規(guī)則隨意選取。不過,Java中有一個標(biāo)識符命名約定:常量用大寫字母,變量用小寫字母開始,類以大寫字母開始。如果一個變量名由多個單詞構(gòu)成,第一個單詞后面的單詞以大寫字母開始,例如anInt。下劃線雖然可以作為標(biāo)識符的一員,但常用于常量名的單詞分隔,因為常量名都是以大寫字母單詞命名的。還要注意一點(diǎn),Java嚴(yán)格區(qū)分字母大小寫,標(biāo)識符中的大小寫字母被認(rèn)為是不同的兩個字符。例如以下是4個不同的合法標(biāo)識符:ad、Ad、aD、Da。關(guān)鍵字是Java語言本身使用的標(biāo)識符,它有其特定的語法含義。
如public表示公有的,static為靜態(tài)的。所有的Java關(guān)鍵字將不能被用作標(biāo)識符,如for、while、boolean等都是Java語言的關(guān)鍵字。關(guān)鍵字用英文小寫字母表示,參見表3.2。3.1.2關(guān)鍵字表3.2Java關(guān)鍵字
注:帶*號的關(guān)鍵字現(xiàn)在已不使用。abstractdefaultgoto*nullswitchbooleandoifpackagesynchronizedbreakdoubleimplementsprivatethisbyteelseimportprotectedthrow/throwscaseextendsinstanceofpublictransientcatchfalseintreturntruecharfinalinterfaceshorttryclassfinallylongstaticvoidconst*floatnativestrictfpvolatilecontinuefornewsuperwhile1.注釋符注釋是程序員為了提高程序的可讀性和可理解性,在源程序的開始或中間對程序的功能、作者、使用方法等所寫的注解。注釋僅用于閱讀源程序,系統(tǒng)編譯程序時,忽略其中的所有注釋。注釋有兩種類型:(1)//單行注釋。可放在某個語句的后面。(2)/*…*/多行注釋。(3)/**…*/文檔注釋。javadoc命令產(chǎn)生的html文件中,用來說明類、方法、變量等。3.1.3分隔符(注釋、空白、分隔)
2.空白符空白符包括空格、回車、換行和制表符(Tab鍵)等符號,用來作為程序中各種基本成份之間的分隔符。各基本成份之間可以有一個或多個空白符,其作用相同。系統(tǒng)編譯程序時,只用空白符區(qū)分各種基本成份,然后忽略它。3.普通分隔符普通分隔符和空白符的作用相同,用來區(qū)分程序中的各種基本成份,但它在程序中有確定的含義,不能忽略。Java有以下普通分隔符:.點(diǎn)號,分隔包、類或分隔引用變量中的變量和方法;
;分號,是Java語句結(jié)束的標(biāo)志;
,逗號,分隔方法的參數(shù)和變量說明等;
:冒號,說明語句標(biāo)號;{}大括號,定義復(fù)合語句、方法體、類體及數(shù)組的初始化;[]方括號,用來定義數(shù)組類型及引用數(shù)字的元素值;()圓括號,用于在方法定義和訪問中將參數(shù)表括起來,或在表達(dá)式中定義運(yùn)算的先后次序。例3.2標(biāo)識符、關(guān)鍵字和分隔符的使用。publicclassExample{ publicstaticvoidmain(Stringargs[]){ inti; ... }}Java是嚴(yán)格區(qū)分?jǐn)?shù)據(jù)類型的語言,要求在程序中使用任何變量之前必須聲明其類型。數(shù)據(jù)類型說明了常量、變量或表達(dá)式的性質(zhì)。只有數(shù)據(jù)類型相同的常量、變量才可以進(jìn)行運(yùn)算。Java的基本數(shù)據(jù)類型長度是固定的。例如int類型在任何計算機(jī)上的長度都是32b(4B),這就使得Java的基本數(shù)據(jù)類型可以跨平臺自由移植。Java的char類型采用了國際編碼標(biāo)準(zhǔn)Unicode,每個碼有16位(2B),可容納65536個字符,有效地解決了用ASCII雙字節(jié)碼表示東方文字帶來的諸多不便,使Java處理多語種的能力大大加強(qiáng)。3.2數(shù)據(jù)類型
Java的數(shù)據(jù)類型可分為:數(shù)據(jù)類型基本數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型數(shù)值類型字符類型:char布爾類型:boolean類接口數(shù)組類型整型:byte,short,int,long浮點(diǎn)型:float,double3.2.1基本數(shù)據(jù)類型
數(shù)據(jù)類型名稱位長/b默認(rèn)值取值范圍布爾型boolean1falsetrue,false字符型char16′\u0000′′\u0000′~′\uffff′字節(jié)型byte80-128~127短整型short160-32768~32767整型int320-2147483648~2147483647長整型long640-9223372036854775808~9223372036854775807浮點(diǎn)型float320.0±1.4E-45或±3.4028235E+38雙精度型double640.0±4.9E-324或±1.7976931348623157E+308表3.3Java基本數(shù)據(jù)類型表3.3給出了Java基本數(shù)據(jù)類型。Java定義了8種基本數(shù)據(jù)類型,利用基本數(shù)據(jù)類型可以構(gòu)造出復(fù)雜數(shù)據(jù)結(jié)構(gòu)來滿足Java程序的各種需要。注意:1、沒有小數(shù)點(diǎn)的數(shù)字默認(rèn)為int型數(shù);帶有小數(shù)點(diǎn)的數(shù)默認(rèn)為double型。其他數(shù)值數(shù)據(jù)要在數(shù)字后面加一個大寫或小寫字母表示數(shù)據(jù)類型。例如4L是long型,3.14f是float型。2、對于整型,默認(rèn)為十進(jìn)制,首字用數(shù)字0表示八進(jìn)制,0x表示十六進(jìn)制。原始數(shù)據(jù)類型byte,short,int,long,float,double,char,booleanJava為它們提供了封裝類Byte,Short,Integer,Long,Float,Double,Charactor,Boolean,此外還有String例如Integer.MAX_VALUE,Integer.MIN_VALUE直接量(literal)是指在程序中直接給出的一個符號串,作用是為變量賦值或參與表達(dá)式運(yùn)算。直接量可以是一個具體的數(shù)值或字符串,也稱常量。但Java中的常量另有所指,是用final說明的一個標(biāo)識符,在很多教科書中往往不加區(qū)分地統(tǒng)稱為常量。將一個標(biāo)識符說明為常量,然后賦予它一個直接量,就在二者之間畫上了等號。直接量或常量在程序執(zhí)行過程中是不可更改的,它們與變量的另一區(qū)別是不占用內(nèi)存。Java約定常量標(biāo)識符全部使用大寫字母。
3.2.2直接量與常量
1.布爾常量布爾常量只有兩個值true和false,代表了兩種狀態(tài):
真和假,書寫時直接使用true和false這兩個英文單詞,不能加引號。
2.整型常量整型常量是不含小數(shù)的整數(shù)值,書寫時可采用十進(jìn)制、十六進(jìn)制和八進(jìn)制形式。十進(jìn)制常量以非0開頭后跟多個0~9之間的數(shù)字;八進(jìn)制以0開頭后跟多個0~7之間的數(shù)字;十六進(jìn)制則以0x開頭后跟多個0~9之間的數(shù)字或a~f之間的小寫字母或A~F之間的大寫字母。下面是3條賦值語句:finalintI=15;finalintJ=017;finalintK=0xF;整型常量默認(rèn)為32位的int型,如果在數(shù)值后邊加上L或l,則表示為64位的長整型。
3.浮點(diǎn)型常量Java的浮點(diǎn)型常量有兩種表示形式:(1)十進(jìn)制數(shù)形式,由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如.123、0.123、123.0;(2)科學(xué)計數(shù)法形式,如123e3或123E-3,其中e或E之前必須有數(shù),且e或E后面的指數(shù)必須為整數(shù)。對于一個浮點(diǎn)數(shù),加上f或F后綴,就是單精度浮點(diǎn)數(shù);加上d或D后綴,就是雙精度浮點(diǎn)數(shù)。不加后綴的浮點(diǎn)數(shù)被默認(rèn)為雙精度浮點(diǎn)數(shù),雙精度浮點(diǎn)數(shù)在計算機(jī)中占64位,有很高的精度。
4.字符常量字符常量是由一對單引號括起來的單個字符。它可以是Unicode字符集中的任意一個字符,如a和Z。對無法通過鍵盤輸入的字符,可用轉(zhuǎn)義符表示,參見表3.4。表3.4轉(zhuǎn)義符號表字符常量的另外一種表示就是直接寫出字符編碼,如字母A的八進(jìn)制表示為′\101′,十六進(jìn)制表示為′\u0041′。
轉(zhuǎn)義符號Unicode編碼功能轉(zhuǎn)義符號Unicode編碼功能\b\u0008退格\f\u000c進(jìn)紙\r\u000d回車\’\u0027單引號\n\u000a換行\(zhòng)”\u0022雙引號\t\u0009水平制表符\\\u005c反斜杠5.字符串常量字符串常量是用一對雙引號括起來的字符序列。當(dāng)字符串只包含一個字符時,不要把它和字符常量混淆,例如′A′是字符常量,而″A″是字符串常量。字符串常量中可包含轉(zhuǎn)義字符,例如″Hello\nworld!″在中間加入了一個換行符,輸出時,這兩個單詞將顯示在兩行上。聲明常量的格式:final類型
常量名[,常量名]=值,…;變量在程序中為一個標(biāo)識符,在內(nèi)存中是一塊空間,它提供了一個臨時存放信息和數(shù)據(jù)的地方,具有記憶數(shù)據(jù)的功能。變量的值是可以改變的,它可以存放不同類型的數(shù)據(jù),通常用小寫字母或單詞作為變量名。變量具有3個元素:
名字、類型和值。
2.2.3變量
1.變量的聲明在Java中存儲一個數(shù)據(jù),必須將它保存到一個變量中。變量在使用前必須有定義,即有確定的類型和名稱。聲明變量的格式為:類型變量名[,變量名]=初值,…;變量聲明告訴編譯器以給定的數(shù)據(jù)類型和變量名創(chuàng)建一個變量;可以一次聲明多個變量,并同時賦初值。例如:byteb1,b2;intv1=0,v2=10,v3=18;例3.3變量聲明示例。使用SDK編譯并運(yùn)行該程序,結(jié)果如圖3.2所示。publicclassV{publicstaticvoidmain(Stringargs[]){byteb=0x55;shorts=0x55ff;inti=1000000;longl=0xffffL;charc=‘c’;floatf=0.23F;doubled=0.7E-3;booleanB=true;StringS=″Thisisastring″;
System.out.println(″字節(jié)型變量b=″+b);System.out.println(″短整型變量s=″+s);System.out.println(″整型變量i=″+i);System.out.println(″長整型變量l=″+l);System.out.println(″字符型變量c=″+c);System.out.println(″浮點(diǎn)型變量f=″+f);System.out.println(″雙精度變量d=″+d);System.out.println(″布爾型變量B=″+B);System.out.println(″字符串類對象S=″+S);}}圖
3.22.變量的使用范圍聲明一個變量后,它將被引入到一個范圍當(dāng)中。也就是說,該變量只能在程序的特定范圍內(nèi)使用,出了這個范圍,變量就消失了。在類中聲明的變量稱為成員變量,通常在類的開始處聲明,可在整個類中使用。在方法和塊中聲明的變量叫局部變量,使用范圍是從它聲明的地方開始到它所在那個塊的結(jié)束處,塊是由兩個大括號所定義的,如例3.4所示。
例3.4變量的使用范圍。publicclassV2{
staticinti=10;
publicstaticvoidmain(Stringargs[]){ intk=10;
System.out.println(″i=″+i);
System.out.println(″k=″+k); } statics(){ k++;//編譯時將出錯,已出k的使用范圍 }}編譯程序V2.java時會出現(xiàn)錯誤,如圖3.3所示。因為變量k在方法塊中聲明,在方法塊之外它是不存在的,所以編譯時會出錯。圖
3.33.變量類型的轉(zhuǎn)換當(dāng)需要把一個整數(shù)變成一個字符型數(shù)據(jù)使用時可以將整數(shù)類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為字符型數(shù)據(jù)。變量類型強(qiáng)制轉(zhuǎn)換的格式為:(數(shù)據(jù)類型)數(shù)據(jù)表達(dá)式例如,下面的語句將字符型數(shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù):inta;charb;b=‘A’;a=(int)b;對于數(shù)值型數(shù)據(jù),Java可以將低精度的數(shù)字賦值給高精度的數(shù)字型變量,反之則需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,例如將int,short,byte賦值給long型時不需要顯式的類型轉(zhuǎn)換,如doublet=0.9F。反之,將long型數(shù)賦值給byte,short,int型時需要強(qiáng)制轉(zhuǎn)換inta=(int)123L。Java不允許自動類型轉(zhuǎn)換,當(dāng)你進(jìn)行類型轉(zhuǎn)換時,要注意使目標(biāo)類型能夠容納原類型的所有信息。記住整型和字符型變量位長是不同的,整型是32位,而字符型是16位,所以從整型轉(zhuǎn)換到字符型可能會丟失信息。同樣,把64位的長整型數(shù)轉(zhuǎn)換為整型數(shù)時,由于長整型有比32位更多的信息,也很可能會丟失信息。即使兩個數(shù)有相同的位數(shù),比如整型和浮點(diǎn)型(都是32位),從浮點(diǎn)型轉(zhuǎn)換為整型時也會丟失信息。
表3.5不會丟失信息的類型轉(zhuǎn)換
原始類型目標(biāo)類型原始類型目標(biāo)類型byteshort,char,int,long,float,doubleintlong,float,doubleshortint,long,float,
doublelongfloat,doublecharint,long,float,
doublefloatdoubleJava的運(yùn)算符代表著特定的運(yùn)算指令,程序運(yùn)行時將對運(yùn)算符連接的操作數(shù)進(jìn)行相應(yīng)的運(yùn)算。運(yùn)算符和操作數(shù)的組合構(gòu)成表達(dá)式,表達(dá)式代表著一個確定的數(shù)值。表達(dá)式在使用上總是先計算后使用,因此,不管一個表達(dá)式有多么復(fù)雜,其最終結(jié)果都是一個有確定類型和大小的數(shù)值。按照運(yùn)算符功能來分,運(yùn)算符有7種:賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和其他運(yùn)算符。按照連接操作數(shù)的多少來分,有一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。另外,算術(shù)運(yùn)算符和賦值運(yùn)算符可以結(jié)合在一起形成算術(shù)賦值運(yùn)算符。
3.3運(yùn)算符與表達(dá)式
表3.6給出了賦值運(yùn)算符和功能說明(未列出包含位運(yùn)算符的賦值運(yùn)算符)。表3.6賦值運(yùn)算符
3.3.1賦值運(yùn)算符
運(yùn)算符功能舉例等價于=右邊數(shù)賦給左邊變量x=5,5賦給x
+=左右兩邊數(shù)相加,結(jié)果賦給左變量x=5,x+=10將15賦給xx=x+10-=左右兩邊數(shù)相減,結(jié)果賦給左變量x=5,x-=10將-5賦給xx=x-10*=左右兩邊數(shù)相乘,結(jié)果賦給左變量x=5,x*=10將50賦給xx=x*10/=右邊數(shù)除左邊數(shù),結(jié)果賦給左變量x=5,x/=5將1賦給xx=x/5%=右邊數(shù)除左邊數(shù),余數(shù)賦給左變量x=25,x%=7將4賦給xx=x%7由賦值運(yùn)算符構(gòu)成的表達(dá)式稱為賦值表達(dá)式。賦值運(yùn)算符的右邊是一個表達(dá)式,這個表達(dá)式還可以包含一個表達(dá)式。例如:
a=b=c=0,相當(dāng)于3個表達(dá)式c=0,b=c,a=b。
表3.7給出了算術(shù)運(yùn)算符和功能說明。算術(shù)運(yùn)算符按操作數(shù)的多少可分為一元運(yùn)算符和二元運(yùn)算符。一元運(yùn)算符(+、-、++、--)一次對一個操作數(shù)進(jìn)行運(yùn)算,二元運(yùn)算符一次對兩個操作數(shù)進(jìn)行運(yùn)算。求余運(yùn)算在判斷兩個數(shù)是否成倍數(shù)時很有用,余數(shù)為0則兩數(shù)成倍數(shù),否則兩數(shù)不成倍數(shù)。一元運(yùn)算i++和i--比傳統(tǒng)寫法的加減運(yùn)算速度要快很多,常用作循環(huán)結(jié)構(gòu)中的計數(shù)器。
3.3.2算術(shù)運(yùn)算符
表3.7算術(shù)運(yùn)算符
運(yùn)算符功能舉例說明-取負(fù)-x單目運(yùn)算,將x取負(fù)值++加1i++單目運(yùn)算,等價于i=i+1--減1i--單目運(yùn)算,等價于i=i-1*乘5*3→15
/除5/3→1整數(shù)相除取商的整數(shù)部分%求余5%3→2兩數(shù)相除取余數(shù)+加5+3→8
-減5-3→2
有一些運(yùn)算符能產(chǎn)生布爾類型的結(jié)果,稱它們?yōu)殛P(guān)系運(yùn)算符,表3.8列出了這些運(yùn)算符。表3.8關(guān)系運(yùn)算符
3.3.3關(guān)系運(yùn)算符
運(yùn)算符含義舉例說明>大于′A′>′a′→falsea的編碼值大于A的編碼值<小于′A′<′a′→trueA的編碼值小于a的編碼值>=大于等于5>=3→true
<=小于等于5<=3→false
==等于5==3→false
!=不等于(3+3)!=5→true先計算3+3的值再比較關(guān)系運(yùn)算符用于兩個操作數(shù)之間關(guān)系的比較。關(guān)系表達(dá)式的運(yùn)算結(jié)果為布爾值,不是true就是false,操作數(shù)可以是常量、變量和表達(dá)式。關(guān)系表達(dá)式常常用作分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu)的控制條件。注意:
Java的相等運(yùn)算符“==”可能會給你帶來麻煩,很多人在比較兩個量時往往錯用了等號“=”,以至于變成了賦值操作,編程中一定要注意比較兩個量時用“==”。
條件運(yùn)算符有一個“?”和一個“:”,條件運(yùn)算符與上面的運(yùn)算符略有不同,是三元運(yùn)算符,有3個操作數(shù)。條件表達(dá)式的格式為:條件表達(dá)式?結(jié)果1:結(jié)果2;條件運(yùn)算符的計算過程為:首先計算作為條件的邏輯表達(dá)式或關(guān)系表達(dá)式,條件表達(dá)式返回值為true時整個表達(dá)式的值為結(jié)果1,返回值是false時整個表達(dá)式的值為結(jié)果2。條件表達(dá)式可取代簡單的二分支結(jié)構(gòu),書寫簡單,并有較快的運(yùn)算速度。3.3.4條件運(yùn)算符
例如:inta=5,b=2,result;if(a>b) result=a-b;else result=b-a;其中的分支結(jié)構(gòu)可改寫為:result=a>b?a-b:b-a;表3.9邏輯運(yùn)算符
3.3.5邏輯運(yùn)算符
運(yùn)算符含義舉例說明!邏輯非!(3>=5)→true將表達(dá)式的值true變false,false變true&&邏輯與(3<5)&&(6>4)→true僅當(dāng)兩個表達(dá)式都為true時才為true||邏輯或(3>5)||(6<4)→false僅當(dāng)兩個表達(dá)式都為false時才為false^邏輯異或(3<5)^(6<4)→true僅當(dāng)兩個表達(dá)式值相異時才為true&布爾邏輯與同&&在表達(dá)式計算上與&&不同|布爾邏輯或同||在表達(dá)式計算上與||不同關(guān)系運(yùn)算只能解決一些簡單條件的判定問題,對較為復(fù)雜的條件可用邏輯運(yùn)算來判定。邏輯表達(dá)式通常由多個關(guān)系表達(dá)式構(gòu)成,最終運(yùn)算結(jié)果為布爾值true或false。“&&”連接的兩個表達(dá)式中,只要有一個不為true,則整個表達(dá)式就為false。運(yùn)算時只要判定左邊表達(dá)式為false,就可立即得出結(jié)論,不再計算右邊表達(dá)式。所以,最有可能取false值的表達(dá)式盡量放在左邊,這樣可提高表達(dá)式的運(yùn)算速度。“&”在表達(dá)式判定上和“&&”相同,惟一不同的是它總是計算兩邊表達(dá)式的值。“||”連接的兩個表達(dá)式中,只要有一個為true,則整個表達(dá)式就為true。運(yùn)算時只要判定左邊表達(dá)式為true,就可立即得出結(jié)論,不再計算右邊表達(dá)式。所以,最有可能取true值的表達(dá)式盡量放在左邊,以提高表達(dá)式的運(yùn)算速度。“|”在表達(dá)式判定上和“||”相同,不同之處是它總是計算兩邊表達(dá)式的值。“^”
邏輯異或連接的兩個表達(dá)式同為true或同為false時,整個表達(dá)式結(jié)果為false,其他情況下取true。
例3.5下面的程序說明了關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用方式,其輸出結(jié)果如圖3.4所示。publicclassRAL{ publicstaticvoidmain(Stringargs[]){ inta=25,b=3,e=3,f=0; booleand=a<b; System.out.println(″a=25,b=3,e=3,f=0″); System.out.println(″a<b=″+d); if(e!=0&&a/e>5) System.out.println(″a/e=″+a/e); if(f!=0&&a/f>5) System.out.println(″a/f=″+a/f); else System.out.println(″f=″+f); }}圖位運(yùn)算符
&按位與|按位或~按位非^按位異或>>算術(shù)右移,左邊高位全用符號位填,符號不變<<左移>>>算術(shù)右移,用0填充空位,符號可能改變以上是常見的分類運(yùn)算符,在Java中還有一些特殊的運(yùn)算符,如表3.10所示。表3.10其他運(yùn)算符3.3.7其他運(yùn)算符
符號功能()表達(dá)式加括號則優(yōu)先運(yùn)算(參數(shù)表)方法的參數(shù)傳遞,多個參數(shù)時用逗號分隔(類型)強(qiáng)制類型轉(zhuǎn)換.分量運(yùn)算符,用于對象屬性或方法的引用[]下標(biāo)運(yùn)算符,引用數(shù)組元素instanceof對象運(yùn)算符,用于測試一個對象是否是一個指定類的實例new對象實例化運(yùn)算符,實例化一個對象,即為對象分配內(nèi)存+字符串合并運(yùn)算符,如″Hello″+″World!″等于″HelloWorld!″表3.11從高到低列出了運(yùn)算符的優(yōu)先級,同一行中的運(yùn)算符優(yōu)先級相同。
不論任何時候,當(dāng)你一時無法確定某種計算的執(zhí)行次序時,可以使用加括號的方法明確為編譯器指定運(yùn)算順序,這也是提高程序可讀性的一個重要方法。
3.3.8運(yùn)算優(yōu)先級
表3.11運(yùn)算符的優(yōu)先級
1.[]()expr++expr--2++expr--expr!~-3new(type)
4*/%
5+-
6<><=>=instanceof7==!=
8&
9^
10|
11&&
12||
13?:
14=opr=
數(shù)組是有序數(shù)據(jù)的集合,使用時要先聲明后創(chuàng)建。Java中,數(shù)組是對象:動態(tài)初始化可以賦值給Object類型的變量在類Object中定義的方法都可用于數(shù)組每個數(shù)組都有一個由publicfinal修飾的成員變量:length,即數(shù)組含有元素的個數(shù)(length可以是正數(shù)或零)3.4數(shù)組
length數(shù)組是Java語言中的特殊數(shù)據(jù)類型,它們保存著能通過下標(biāo)索引來引用的一組同類數(shù)據(jù)。一維數(shù)組是指一個線性數(shù)據(jù)序列,聲明格式為:數(shù)據(jù)類型數(shù)組名[];或數(shù)據(jù)類型[]數(shù)組名;例如:intarr1[];char[]arr2;Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此“[]”中不用指出數(shù)組中元素的個數(shù)即數(shù)組長度,而且對于如上定義的一個數(shù)組暫時還不能訪問它的任何元素。
3.4.1一維數(shù)組的聲明
定義數(shù)組后,還必須為數(shù)組分配內(nèi)存、初始化。1.用運(yùn)算符new分配內(nèi)存再賦值格式如下:數(shù)組名=new數(shù)據(jù)類型[size]其中,size指明數(shù)組的長度。例如:intintArr[]=newint[3];charchArr[]=newchar[5];數(shù)組元素賦值的方法與變量相同,例如:intArr[0]=10;intArr[1]=20;intArr[2]=30;3.4.2一維數(shù)組的創(chuàng)建與賦值
2.直接賦初值并定義數(shù)組的大小第二種方法是直接賦初值并定義數(shù)組的大小。初值必須用大括號括起,用逗號作分隔符,初值的個數(shù)表示數(shù)組的大小。例如:inta[]={1,2,3,4,5,6,7,8,9,10};charc[]={′a′,′b′,′c′,′北′,′京′}用關(guān)鍵字new構(gòu)成數(shù)組的創(chuàng)建表達(dá)式,可以指定數(shù)組的類型和數(shù)組元素的個數(shù)。元素個數(shù)可以是常量也可以是變量基本類型數(shù)組的每個元素都是一個基本類型的變量;引用類型數(shù)組的每個元素都是對象的的引用
例3.6一維數(shù)組的使用。該程序?qū)?shù)組中的每個元素賦值,結(jié)果如圖3.5所示。publicclassA1{publicstaticvoidmain(Stringargs[]){inta[]=newint[5];a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;System.out.println(″a[″+0+″]=″+a[0]);System.out.println(″a[″+1+″]=″+a[1]);System.out.println(″a[″+2+″]=″+a[2]);System.out.println(″a[″+3+″]=″+a[3]);System.out.println(″a[″+4+″]=″+a[4]);}}圖
3.5數(shù)組名是一個引用:publicclassArrays{publicstaticvoidmain(String[]args){int[]a1={1,2,3,4,5};int[]a2;a2=a1;for(inti=0;i<a2.length;i++)a2[i]++;for(inti=0;i<a1.length;i++) System.out.println("a1["+i+"]="+a1[i]);}}
字符串引用構(gòu)成的數(shù)組:
String[]strArray; strArray=newString[8]; strArray[0]="Hello";strArraystrArraystrArrayHellosource數(shù)組的復(fù)制: publicstaticvoidarraycopy(Object
source,int
srcIndex,Object
dest,int
destIndex,int
length)Java將多維數(shù)組看作數(shù)組的數(shù)組。例如二維數(shù)組就是一個特殊的一維數(shù)組,它的每個元素是一個一維數(shù)組。二維數(shù)組的聲明與一維數(shù)組基本相同,只是后面再加上一對中括號“[]”。創(chuàng)建二維數(shù)組時,可指定各維的長度或至少指定第一維的長度,也可采用直接賦值的方法確定二維數(shù)組的長度。此時,按照給定的值序依次填滿數(shù)組每一行中的元素。更高維的情況是類似的。下面以二維數(shù)組為例來進(jìn)行說明。例如:3.4.3多維數(shù)組
intarr1[][]=newint[3][4];intarr2[][]=newint[3][];intarr3[][]={{0,1,2},{3,4,5},{6,7,8}};Java中二維數(shù)組有一個好處是第二維的長度可以不相等。例如arr2的第二維長度可以分別選取為3、4、5,適用于數(shù)組元素不等的情況。每行的長度:classUnevenExample3{ publicstaticvoidmain(String[]arg){ //聲明并構(gòu)造一個2維數(shù)組
int[][]une
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動邊緣提取的深度學(xué)習(xí)邊緣檢測技術(shù)-洞察闡釋
- 門吊大修合同協(xié)議書范本
- 房產(chǎn)分配合同協(xié)議書范本
- 房產(chǎn)代理合同解除協(xié)議書
- 農(nóng)村別墅保養(yǎng)合同協(xié)議書
- 快餐訂餐合同協(xié)議書模板
- 低層住宅裝修合同協(xié)議書
- 如何完成拍賣合同協(xié)議書
- 購房合同注銷協(xié)議書范本
- 合伙入股合同協(xié)議書范本
- 《石油化工儲運(yùn)系統(tǒng)罐區(qū)設(shè)計規(guī)范》(SHT3007-2014)
- 安徽省江南十校2023-2024學(xué)年高二下學(xué)期5月階段聯(lián)考化學(xué)A試題
- 第六單元 資本主義制度的初步確立 復(fù)習(xí)課件 2024-2025學(xué)年統(tǒng)編版九年級歷史上冊
- 弘揚(yáng)偉大長征精神-走好今天的長征路課件
- 雙減背景下初中數(shù)學(xué)分層設(shè)計作業(yè)課題研究結(jié)題總結(jié)匯報
- 老媽是個菜販子(2022年海南中考語文試卷記敘文閱讀題及答案)
- 低空經(jīng)濟(jì)產(chǎn)業(yè)園商業(yè)計劃
- 四川省綿陽市游仙區(qū)2024-2025學(xué)年高二語文上學(xué)期期末考試考試試題
- 別墅清包工合同協(xié)議書
- DL∕T 1297-2013 電能質(zhì)量監(jiān)測系統(tǒng)技術(shù)規(guī)范
- 高考英語688高頻詞匯excel版
評論
0/150
提交評論