第2章Java基本語法_第1頁
第2章Java基本語法_第2頁
第2章Java基本語法_第3頁
第2章Java基本語法_第4頁
第2章Java基本語法_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 java基本語法第2章 java基本語法用戶要想掌握并熟練應(yīng)用java語言,就需要對(duì)java語言中的基礎(chǔ)知識(shí)進(jìn)行充分地了解。本章介紹java語言的基本語法,包括數(shù)據(jù)類型、類型轉(zhuǎn)換、拆箱、裝箱、變量、常量、運(yùn)算符和表達(dá)式以及注釋等內(nèi)容。java語言與c#和c+等語言有著相似的地方,因此,學(xué)習(xí)過c#和c+語言的讀者在學(xué)習(xí)本章時(shí)會(huì)感到很輕松。學(xué)習(xí)目標(biāo)l 掌握數(shù)據(jù)類型的分類。l 掌握變量的聲明和賦值。l 掌握標(biāo)識(shí)符的命名規(guī)則。l 熟悉兩種基本類型轉(zhuǎn)換。l 掌握算術(shù)運(yùn)算符和賦值運(yùn)算符。l 熟悉關(guān)系運(yùn)算符和邏輯運(yùn)算符。l 了解位運(yùn)算符和其他運(yùn)算符。l 熟悉運(yùn)算符的優(yōu)先級(jí)。l 熟悉java中的關(guān)鍵字

2、。l 掌握java中的3種注釋。l 能夠熟練地使用scanner類。2.1 數(shù) 據(jù) 類 型數(shù)據(jù)是程序的主要組成部分,它在定義時(shí)必須有變量名和數(shù)據(jù)類型,不同的數(shù)據(jù)類型執(zhí)行不同的操作,數(shù)據(jù)的作用域表示數(shù)據(jù)在程序中可以使用的范圍。本節(jié)將簡(jiǎn)單介紹java中的數(shù)據(jù)類型。2.1.1 數(shù)據(jù)類型分類數(shù)據(jù)類型是指明變量或表達(dá)式的狀態(tài)和行為。java語言中有大量的數(shù)據(jù)類型,大體上可以分為基本數(shù)據(jù)類型(或內(nèi)置數(shù)據(jù)類型)和引用數(shù)據(jù)類型兩類。基本數(shù)據(jù)類型和引用數(shù)據(jù)類型又可以再細(xì)分,如圖2-1所示。從圖2-1中可以看出,基本數(shù)據(jù)類型包括數(shù)值型、字符型和布爾型。其中數(shù)值型又可分為整數(shù)類型和浮點(diǎn)型;引用數(shù)據(jù)類型包括類、接口和

3、數(shù)組。java為每一個(gè)基本數(shù)據(jù)類型提供封裝類,如表2-1所示。圖2-1 數(shù)據(jù)類型分類表2-1 基本數(shù)據(jù)類型及對(duì)象封裝類基本類型對(duì)象封裝類charcharacterbytebytebooleanbooleanshortshortintintegerlonglongfloatfloatdoubledouble2.1.2 整數(shù)類型整數(shù)類型用來存儲(chǔ)整數(shù)數(shù)值,即沒有小數(shù)部分的數(shù)值。java定義了4種整數(shù)類型:byte(字節(jié)型)、short(短整型)、int(整型)和long(長(zhǎng)整型)。所有這些類型都是有符號(hào)的、正的或負(fù)的整數(shù)。java不支持無符號(hào)的、只是正值的整數(shù)。1byte類型byte是最小的整數(shù)類型

4、。對(duì)于該類型的變量,內(nèi)存分配給它1個(gè)字節(jié)占8位。byte取值范圍在-2727-1之間,即-128127。當(dāng)操作來自網(wǎng)絡(luò)或文件的數(shù)據(jù)流時(shí),byte類型的變量特別有用;當(dāng)操作與java的其他內(nèi)置類型不直接兼容原始的二進(jìn)制數(shù)據(jù)時(shí),byte類型的變量也很有用?!纠?-1】下面代碼分別聲明3個(gè)byte類型的變量a、b和c:byte a;byte b;byte c;聲明多個(gè)變量時(shí),如果變量的類型相同,那么可以一次聲明多個(gè)變量,變量之間通過“,”(逗號(hào))進(jìn)行分隔。如下代碼等價(jià)于例2-1中的代碼:byte a,b,c2short類型short是有符號(hào)的16位類型,它的范圍在-215215-1之間。short限

5、制數(shù)據(jù)的存儲(chǔ)順序?yàn)橄雀咦止?jié),后低字節(jié),這樣在某些機(jī)器中程序就會(huì)出錯(cuò),因此該類型很少使用?!纠?-2】下面聲明short類型的a變量和b變量,并為它們指定初始值,代碼如下:short a=12,b=11;3int類型int是最常用的整數(shù)類型,它是有符號(hào)的32位類型。int類型的取值范圍在-231231-1之間。如果要聲明用戶年齡、點(diǎn)擊率和銷售量時(shí)都可以使用int類型。除了常用的用途外,int類型變量通常用于控制循環(huán)和索引數(shù)組。當(dāng)需要使用整數(shù)時(shí),int通常是最好的選擇。【例2-3】下面聲明int類型的age變量,并為其指定初始值:int age = 12;4long類型long是有符號(hào)的64位類型

6、,其取值范圍在-263263-1之間。對(duì)于那些int類型不足以容納期望值的情況,long類型基本上都能解決,它的存儲(chǔ)范圍相當(dāng)大,當(dāng)需要很大的整數(shù)時(shí),這使得它顯得很有用。 注意:在為整數(shù)類型的變量賦值時(shí),既可賦值為十進(jìn)制的整數(shù),也可賦值為八進(jìn)制或十六進(jìn)制的整數(shù),但是需要注意變量能夠接受的最大值與最小值,否則會(huì)出現(xiàn)錯(cuò)誤。當(dāng)給long類型變量賦值時(shí),如果賦予的值大于int類型的最大值或小于int類型的最小值,則需要在數(shù)字后加l或l,以此表示該數(shù)據(jù)為長(zhǎng)整型。2.1.3 浮點(diǎn)型浮點(diǎn)型也稱為實(shí)型,是指帶有小數(shù)部分的數(shù)據(jù)。當(dāng)計(jì)算需要小數(shù)精度的表達(dá)式時(shí)可使用浮點(diǎn)型數(shù)據(jù)。java中的浮點(diǎn)型包括float和dou

7、ble兩種。其中float是指單精度浮點(diǎn)型;double是指雙精度浮點(diǎn)型。在表2-2中對(duì)這兩種類型的寬度和范圍進(jìn)行了說明。表2-2 浮點(diǎn)型的寬度和范圍類 型寬度(位)大致范圍double644.9e-3241.8e+308float321.4e-0453.4e+0381float類型float類型表示使用32位存儲(chǔ)的單精度數(shù)值。在某些處理器上,單精度運(yùn)算速度更快,并且占用的空間是雙精度的一半,但是當(dāng)數(shù)值非常大或非常小時(shí)存儲(chǔ)精度會(huì)變得不精確。如果需要小數(shù)部分,并且精度要求不是很高時(shí),float類型的變量是很有用的。例如,表示美元或者美分時(shí)可以使用float類型。對(duì)于float類型的值,需要在數(shù)字

8、后添加大寫字母f或小寫字母f。2double類型雙精度使用double關(guān)鍵字表示,并使用64位存儲(chǔ)數(shù)值。在針對(duì)高精度數(shù)學(xué)運(yùn)算進(jìn)行了優(yōu)化的某些現(xiàn)代處理器上,實(shí)際上雙精度數(shù)值的運(yùn)算速度更快。所有常用數(shù)學(xué)函數(shù)(如sin()和sqrt()等)都返回雙精度值。如果需要在很多次迭代運(yùn)算中保持精度,或是操作非常大的數(shù)值時(shí),double類型是最佳選擇。2.1.4 字符型java語言中的字符類型用來存儲(chǔ)單個(gè)字符,它占用16位(兩個(gè)字節(jié))的內(nèi)存空間,使用char關(guān)鍵字進(jìn)行標(biāo)識(shí)。因此,在定義字符類型的變量時(shí),可以使用char關(guān)鍵字。char類型的范圍在065 536之間,沒有負(fù)的char值。為char類型

9、的變量賦值時(shí),可以使用單引號(hào)或數(shù)字。char類型使用兩個(gè)字節(jié)的unicode編碼表示,unicode定義了一個(gè)完全國際化的字符集,能夠表示全部人類語言中的所有字符。unicode是數(shù)十種字符集的統(tǒng)一體,如拉丁字符集、希臘字符集、阿拉伯字符集、日文字符集以及韓文字符集等。為此,unicode需要16位寬度。因此,在java中的char是16位類型。 注意:在java的正式規(guī)范中,char被當(dāng)作整數(shù)類型,這意味著char和int、short、long以及byte位于同一分類中。但是,由于char類型的主要用途是表示unicode字符,因此,通常考慮將char放到單獨(dú)的分類中。2.1.5 布爾類型j

10、ava有一個(gè)稱為boolean的基本類型,用于表示邏輯值。它只能是兩個(gè)可能的值之一:true或false(默認(rèn)值)。所有關(guān)系運(yùn)算都返回這種類型的值。對(duì)于if和for這類控制語句的條件表達(dá)式,也需要boolean類型。java中的true和false不能轉(zhuǎn)換成任何數(shù)字表示形式,即true不等于1,false也不等于0。在java中,只能將布爾類型的值賦給以布爾類型聲明的變量,或者用于使用布爾運(yùn)算符的表達(dá)式中。2.1.6 引用數(shù)據(jù)類型除了基本的數(shù)據(jù)類型外,java語言還定義了許多引用數(shù)據(jù)類型。綜合使用基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,可以處理實(shí)際需求中遇到的各種數(shù)據(jù)形式,能夠編寫更加復(fù)雜的程序。下面介紹

11、3種最常用的引用數(shù)據(jù)類型:數(shù)組、類和接口。1數(shù)組數(shù)組是java語言中的一種引用數(shù)據(jù)類型,是具有相同數(shù)據(jù)類型的數(shù)據(jù)集合。數(shù)組中的每個(gè)數(shù)據(jù)稱為數(shù)組元素,數(shù)組元素是有序的(關(guān)于數(shù)組的知識(shí)會(huì)在第4章進(jìn)行詳細(xì)介紹)。2類類是面向?qū)ο蟪绦蛟O(shè)計(jì)語言中的一個(gè)概念,它實(shí)際上是對(duì)某種類型的對(duì)象定義變量和方法的原型。簡(jiǎn)單來說,類表示對(duì)現(xiàn)實(shí)生活中某一類具有共同特征的事物進(jìn)行抽象,是面向?qū)ο缶幊痰幕A(chǔ)。對(duì)于java而言,類是java的核心和本質(zhì),是java語言的基礎(chǔ)(關(guān)于類的知識(shí)會(huì)在第7章進(jìn)行詳細(xì)介紹)。3接口java中的接口是一系列方法的聲明,是一些方法特征的集合。簡(jiǎn)單來說,接口表示一種約定,實(shí)現(xiàn)接口的類必須嚴(yán)格按照

12、其定義實(shí)現(xiàn)每個(gè)細(xì)節(jié)(關(guān)于接口的知識(shí)會(huì)在第9章進(jìn)行詳細(xì)介紹)。2.2 變 量java中存在變量和常量,實(shí)際上,在數(shù)學(xué)中已經(jīng)涉及了變量和常量。java程序中的變量、常量,與數(shù)學(xué)中的變量、常量意義相同。例如,如果銀行中活期存款的利率為3%,那么3%就是常量,而從銀行中獲得的利息會(huì)不斷變化,此時(shí)利息就是變量。下面將介紹java中的變量,包括變量的聲明、賦值和作用域等。2.2.1 變量的聲明在java程序中,變量是基本存儲(chǔ)單元。所有的變量在使用之前必須聲明,它通過聯(lián)合標(biāo)識(shí)符、類型以及可選的初始化器來定義,其基本語法如下:type identifier = value , identifier = val

13、ue ;其中,type是java的基本數(shù)據(jù)類型或者是類和接口的名稱;identifier是變量的名稱??梢酝ㄟ^指定一個(gè)等號(hào)和一個(gè)值為初始化變量。初始化表達(dá)式的結(jié)果類型必須與為變量指定的類型相同(或兼容)。為了聲明指定類型的多個(gè)變量,需要使用以逗號(hào)分隔的列表?!纠?-4】下面分別聲明int、double和float類型的變量:int類型的變量名分別是age、score和maxvalue;double類型的變量名是price;float類型的變量名是num1和num2。其中,在聲明age和score變量時(shí)需要指定初始值,示例代碼如下:int age=12,score=100,maxvalue;do

14、uble price;float num1,num2;在為java中的變量命名時(shí),變量名稱并不是任意的,它遵循標(biāo)識(shí)符的命名規(guī)則。標(biāo)識(shí)符是指可被用來為類、變量或方法等命名的字符序列。換句話說,標(biāo)識(shí)符就是用用戶自定義的名稱來標(biāo)識(shí)類、變量或方法等。標(biāo)識(shí)符的命名規(guī)則如下。(1) 標(biāo)識(shí)符必須由數(shù)字09、大寫字母az、小寫字母az、下劃線_、美元符號(hào)$、人民幣符號(hào)¥以及所有在十六進(jìn)制0xc0前的ascii碼組成。(2) 標(biāo)識(shí)符的名稱必須以字母、下劃線_、美元符號(hào)$或者人民幣符號(hào)¥開頭。(3) 不能把java中的關(guān)鍵字、保留字等作為標(biāo)識(shí)符。(4) 標(biāo)識(shí)符的長(zhǎng)度沒有限制。(5) 標(biāo)識(shí)符區(qū)分大小寫。(6)

15、60; java語言對(duì)字母的大小寫有嚴(yán)格的要求,而且標(biāo)識(shí)符的命名最好能反映它的作用。例如,score表示成績(jī);age表示年齡;grade表示年級(jí)等。變量命名除了遵循上述規(guī)則外,還需要遵循一個(gè)規(guī)則:如果變量名是單個(gè)單詞,那么單詞的全部字母要小寫,如int score;如果變量名是由多個(gè)單詞組成的復(fù)合單詞,除第一個(gè)單詞外,其后所有單詞首字母都要大寫,如int studentscore。【例2-5】下面代碼列出了幾種常見的合法和不合法的情況:int _age = 12;/合法變量int class = 12;/不合法變量,使用了關(guān)鍵字double ¥score_1 = 98.5;/合法變量

16、int studentage = 10;/合法變量int #_age = 15;/不合法,以非法的#開頭 提示:在java語言中,雖然允許使用漢語中的文字和其他語言文字作為變量名,但是筆者建議讀者最好不要使用這些文字作為變量名。2.2.2 變量的賦值聲明變量之后,可以使用賦值運(yùn)算符等號(hào)“=”為它賦值。賦值有兩種方法:一種是在聲明時(shí)為其賦值,如例2-4;另一種是先聲明后賦值?!纠?-6】下面首先聲明int類型的age變量,聲明時(shí)為其指定初始值8,然后聲明double類型的price變量,聲明后將其賦值為12.5。示例代碼如下:int age = 8;/聲明age變量并賦值double price

17、;/聲明price變量price = 12.5;/為price變量賦值 注意:如果只聲明變量而不賦值,系統(tǒng)將會(huì)使用默認(rèn)值進(jìn)行初始化。如byte、short、int、long類型的默認(rèn)值為0;double和float類型的默認(rèn)值為0.0;boolean類型的默認(rèn)值為false;所有引用類型的默認(rèn)值為null。2.2.3 變量的作用域變量的作用域是指程序代碼能夠訪問該變量的區(qū)域,如果超出該區(qū)域訪問變量,則編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。變量的作用域決定了變量的生命周期,變量的生命周期是指從聲明一個(gè)變量并分配內(nèi)存空間開始,到釋放該變量并清除所占用的內(nèi)存空間結(jié)束。變量聲明的位置決定了變量的作用域,根據(jù)作用域的不同,

18、可以將變量分為全局變量和局部變量。1全局變量全局變量即在程序范圍之內(nèi)都有效的變量?!纠?-7】在下面的代碼中,test類中聲明的a變量就是一個(gè)全局變量,它在整個(gè)類中都可以使用: public class test int a = 10;public static void main(string args) test v = new test();v.print();void print() system.out.println("全局變量 a=" + a);2局部變量局部變量就是在程序中的一部分內(nèi)(如main()方法)是有效的。在類的方法中聲明的變量(包括方法的參數(shù))屬于

19、局部變量,它們只在當(dāng)前的方法內(nèi)有效,不能用于類的其他方法中。在方法的代碼塊(如if語句塊)中聲明的變量也是局部變量,它只在該代碼塊內(nèi)有效。局部變量的生命周期取決于方法,當(dāng)方法被調(diào)用時(shí),java虛擬機(jī)為方法中的局部變量分配內(nèi)存空間;當(dāng)方法的調(diào)用結(jié)束后,該方法中的局部變量占用的內(nèi)存空間將會(huì)被釋放,并被銷毀掉?!纠?-8】在test類中聲明maxvalue變量和print()方法,在print()方法中獲取傳入的參數(shù),并將參數(shù)值保存到value變量中。通過if語句判斷value變量與maxvalue變量值的大小,根據(jù)判斷返回不同的結(jié)果。示例代碼如下:public class test double

20、maxvalue = 120;double print(double val) double value = val;if (value > maxvalue)return value;elsereturn maxvalue;在上述代碼中,maxvalue是全局變量,它在該類的任何地方都可以使用。而print()方法的value則是一個(gè)局部變量,它只能在該方法中使用。如果在方法外部調(diào)用,那么在編譯時(shí)就會(huì)出現(xiàn)錯(cuò)誤。2.3 常 量如果需要存儲(chǔ)在程序運(yùn)行時(shí)可以修改的值,使用變量很有用。對(duì)于在程序運(yùn)行過程中一直不變,即不需要修改的值,可以用一種特殊的變量常量。常量是一種標(biāo)識(shí)符,它只在聲明時(shí)進(jìn)行定

21、義,一旦定義就不允許在程序運(yùn)行時(shí)再改變其值。常量一般都以大寫字母表示,并使用final關(guān)鍵字進(jìn)行修飾。為了將常量和變量進(jìn)行區(qū)分,一般會(huì)將常量名稱的字母全部大寫。如果常量名由多個(gè)單詞組成,則由下劃線“_”連接。【例2-9】在計(jì)算圓的周長(zhǎng)和面積時(shí)經(jīng)常會(huì)使用到 p,它的值是一個(gè)固定值。其聲明代碼如下:final double pi = 3.14;2.4 基本數(shù)據(jù)類型轉(zhuǎn)換了解過數(shù)據(jù)類型、變量和常量之后,本節(jié)來簡(jiǎn)單地了解數(shù)據(jù)類型之間的轉(zhuǎn)換。在java中,除了boolean類型以外的7個(gè)基本類型,把某個(gè)類型的值直接賦給另外一種類型的變量,這種方式稱為基本類型轉(zhuǎn)換。一般情況下,基本數(shù)據(jù)類型轉(zhuǎn)換可分為自動(dòng)類型

22、轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換兩種。2.4.1 自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換必須在兩種兼容的數(shù)據(jù)類型的數(shù)據(jù)之間進(jìn)行,并且必須是由低精度類型向高精度類型轉(zhuǎn)換。簡(jiǎn)單來說,自動(dòng)類型轉(zhuǎn)換就是將小范圍的數(shù)據(jù)類型轉(zhuǎn)換成大范圍的數(shù)據(jù)類型。自動(dòng)類型轉(zhuǎn)換適合于整數(shù)類型、字符型和浮點(diǎn)型。在運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換規(guī)則如表2-3所示。表2-3 自動(dòng)類型轉(zhuǎn)換的規(guī)則操作數(shù)1的類型操作數(shù)2的類型轉(zhuǎn)換后的類型byte、short、charintintbyte、short、char、intlonglongbyte、short、char、int、longfloatfloatbyte、short、char、in

23、t、long、floatdoubledouble從表2-3中可以看出,byte、short、char的優(yōu)先級(jí)最低,這三者之間不會(huì)互相轉(zhuǎn)換,然后依次為int、long、float和double(最高)?!纠?-10】下面代碼演示了不同類型之間的自動(dòng)類型轉(zhuǎn)換:public class test public static void main(string args) int i = 9;char c = 'a'float f = 3.14f;double d = 1.129;i = c;/字符型char轉(zhuǎn)換成整型intd = f;/單精度浮點(diǎn)轉(zhuǎn)換成雙精度浮點(diǎn)f = i;/整型int

24、轉(zhuǎn)換成floatsystem.out.println("i=" + i + ",d=" + d + ",f=" + f);執(zhí)行上述代碼,結(jié)果如下:i=97,d=3.140000104904175,f=97.0ss2.4.2 強(qiáng)制類型轉(zhuǎn)換與自動(dòng)類型轉(zhuǎn)換正好相反,強(qiáng)制類型轉(zhuǎn)換是將高精度類型向低精度類型進(jìn)行轉(zhuǎn)換。在進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),需要注意的是如果將高精度數(shù)據(jù)向低精度數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換時(shí),可能會(huì)因?yàn)槌隽说途葦?shù)據(jù)類型的取值范圍,導(dǎo)致數(shù)據(jù)不完整,數(shù)據(jù)精度變低。實(shí)現(xiàn)數(shù)據(jù)的強(qiáng)制類型轉(zhuǎn)換時(shí),要在被轉(zhuǎn)換的變量前面添加轉(zhuǎn)換的數(shù)據(jù)類型。轉(zhuǎn)換格式如下:目

25、標(biāo)類型 變量 = (目標(biāo)類型)表達(dá)式;【例2-11】在程序的main()方法中聲明double類型的兩個(gè)變量score1和score2,并為這兩個(gè)變量賦值。然后將這兩個(gè)變量強(qiáng)制轉(zhuǎn)換為int類型,最后輸出結(jié)果。示例代碼如下:public class test public static void main(string args) double score1 = 98.7;double score2 = 70.2;int result1 = (int) score1 + (int) score2;system.out.println(result1);在上述代碼中,score1變量的值強(qiáng)制轉(zhuǎn)換后

26、的結(jié)果為98,score2變量的值強(qiáng)制轉(zhuǎn)換后的結(jié)果為70,強(qiáng)制轉(zhuǎn)換后這兩個(gè)變量的精度都變低了。2.5 運(yùn)算符和表達(dá)式表達(dá)式是由變量、常量和方法等通過運(yùn)算符連接起來而形成的一個(gè)有意義的算式。而運(yùn)算符就是在用變量或常量進(jìn)行運(yùn)算時(shí)經(jīng)常使用的符號(hào)。根據(jù)操作數(shù)的數(shù)目來分,運(yùn)算符可以分為一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。根據(jù)功能來分,運(yùn)算符可以分為算術(shù)運(yùn)算符、賦值運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符以及位運(yùn)算符等。2.5.1 算術(shù)運(yùn)算符java中的算術(shù)運(yùn)算符包括+(加號(hào))、-(減號(hào))、*(乘號(hào))、/(除號(hào))和%(求余)5種。這些運(yùn)算符與大家平常接觸的數(shù)學(xué)運(yùn)算符具有相同的含義,這里不再詳細(xì)解釋說明。算術(shù)運(yùn)算符支

27、持整型和浮點(diǎn)型數(shù)據(jù)的運(yùn)算。當(dāng)使用運(yùn)算符把兩個(gè)操作數(shù)結(jié)合到一起時(shí),首先會(huì)將兩個(gè)操作數(shù)轉(zhuǎn)換成相同類型的數(shù)據(jù)。(1) 兩個(gè)操作數(shù)中如果有一個(gè)是double類型,那么另一個(gè)操作數(shù)一定會(huì)先轉(zhuǎn)換成double類型,然后再進(jìn)行運(yùn)算。(2) 兩個(gè)操作數(shù)中如果有一個(gè)是float類型,那么另一個(gè)操作數(shù)一定會(huì)先轉(zhuǎn)換成float類型,然后再進(jìn)行運(yùn)算。(3) 兩個(gè)操作數(shù)中如果有一個(gè)是long類型,那么另一個(gè)操作數(shù)一定會(huì)先轉(zhuǎn)換成long類型,然后再進(jìn)行運(yùn)算。(4) 其他任何兩個(gè)基本類型的數(shù)據(jù)操作,兩個(gè)操作數(shù)都會(huì)自動(dòng)轉(zhuǎn)換成int類型?!纠?-12】分別聲明double、int、float、byte和short類型的變量,然

28、后分別使用本節(jié)介紹的算術(shù)運(yùn)算符進(jìn)行計(jì)算。示例代碼如下:public class bianliang public static void main(string args) double score = 90.5; /double類型的score變量int age = 100; /int類型的age變量float num = 12.5f; /float類型的num變量byte b = 10; /byte類型的b變量short c = 12; /short類型的c變量system.out.println(score + "+" + age + "=" +

29、(score + age);system.out.println(score + "-" + num + "=" + (score - num);system.out.println(age + "*" + b + "=" + (age * b);system.out.println(age + "/" + num + "=" + (score / age);system.out.println(b + "%" + c + "=" +

30、(b % c);在上述代碼中,對(duì)score和age變量進(jìn)行加法運(yùn)算,由于score是double類型,因此會(huì)先將int類型的age變量轉(zhuǎn)換為double類型,然后再進(jìn)行計(jì)算。對(duì)score和num變量進(jìn)行減法運(yùn)算,由于num是float類型,因此會(huì)先將double類型的score變量轉(zhuǎn)換為float類型,然后再進(jìn)行計(jì)算。運(yùn)行上述代碼,結(jié)果如下:90.5+100=190.590.5-12.5=78.0100*10=1000100/12.5=0.90510%12=102.5.2 賦值運(yùn)算符賦值就是將數(shù)值賦給變量,而這個(gè)賦值運(yùn)算符就充當(dāng)了這個(gè)賦值的任務(wù),最簡(jiǎn)單的賦值運(yùn)算符是等號(hào)“=”。除了這個(gè)賦值運(yùn)算

31、符外,還包括其他的賦值運(yùn)算符,如表2-4所示。表2-4 常用的賦值運(yùn)算符運(yùn) 算 符說 明例 子a的結(jié)果+=將該運(yùn)算符左邊的數(shù)值加上右邊的數(shù)值,其結(jié)果賦值給左邊變量本身int a=5;a+=27-=將該運(yùn)算符左邊的數(shù)值減去右邊的數(shù)值,其結(jié)果賦值給左邊變量本身int a=5;a-=23*=將該運(yùn)算符左邊的數(shù)值乘以右邊的數(shù)值,其結(jié)果賦值給左邊變量本身int a=5;a*=210/=將該運(yùn)算符左邊的數(shù)值整除右邊的數(shù)值,其結(jié)果賦值給左邊變量本身int a=5;a/=22%=將該運(yùn)算符左邊的數(shù)值除以右邊的數(shù)值,其結(jié)果賦值給左邊變量本身int a=5;a%=21在大型的程序中,靈活使用這些賦值運(yùn)算符可以提高

32、程序的易讀性和易懂性,并且使程序更加容易保護(hù)。 提示:賦值運(yùn)算符包括一種特殊的復(fù)合賦值運(yùn)算符,如>>=、>>>=、<<=、&=、|=以及=,這些復(fù)合賦值運(yùn)算符并不常用,因此這里不再多做介紹。2.5.3 關(guān)系運(yùn)算符通過關(guān)系運(yùn)算符計(jì)算的結(jié)果是一個(gè)boolean類型值。當(dāng)表達(dá)式有關(guān)系運(yùn)算符時(shí),計(jì)算機(jī)將會(huì)判斷運(yùn)算對(duì)象之間通過關(guān)系運(yùn)算符指定的關(guān)系是否成立,如果成立,返回值為true,否則返回值為false。java中的關(guān)系運(yùn)算符包括6種,其說明如表2-5所示。表2-5 關(guān)系運(yùn)算符運(yùn) 算 符說 明例 子結(jié) 果>大于'a'>

33、9;b'false<小于100<20false>=大于等于100>=20true<=小于等于100<=100true!=不等于20!=20.00false=等于20=20.00true關(guān)系運(yùn)算符不僅適用于數(shù)值類型,還適用于字符類型,以及其他非基本數(shù)據(jù)類型(如數(shù)組、字符串)。在表2-5中,等于和不等于運(yùn)算符適用于引用類型和所有的基本數(shù)據(jù)類型,其他關(guān)系運(yùn)算符只適用于除boolean類型以外的基本數(shù)據(jù)類型。【例2-13】定義int類型的變量a和b,分別對(duì)其進(jìn)行賦值,并使用關(guān)系運(yùn)算符>、=和!=比較這兩個(gè)變量的關(guān)系。示例代碼如下:public clas

34、s test public static void main(string args) int a=10,b=21; system.out.println("說 a>b,對(duì)嗎?"+(a>b); system.out.println("說 a=b,對(duì)嗎?"+(a=b); system.out.println("說 a!=b,對(duì)嗎?"+(a!=b);運(yùn)行上述代碼,結(jié)果如下:說 a>b,對(duì)嗎?false說 a=b,對(duì)嗎?false說 a!=b,對(duì)嗎?true2.5.4 邏輯運(yùn)算符邏輯運(yùn)算符只能對(duì)布爾類型的數(shù)據(jù)進(jìn)行操作,因此

35、,返回的結(jié)果也是布爾類型的值。java語言中的邏輯運(yùn)算符包括3種,如表2-6所示。表2-6 邏輯運(yùn)算符運(yùn) 算 符說 明&&邏輯與,二元運(yùn)算符。前面兩個(gè)條件都為真時(shí),返回值為true,否則返回false|邏輯或,二元運(yùn)算符。前面兩個(gè)條件有一個(gè)為真時(shí),返回值為true,否則返回false!邏輯非,一元運(yùn)算符。表示否定,!true等于false;!false等于true 注意:當(dāng)操作元都為布爾類型的數(shù)據(jù)時(shí),位運(yùn)算符包括的&和|也被視為邏輯運(yùn)算符,它們的運(yùn)算規(guī)則與&&和|是相同的,但是在計(jì)算運(yùn)算符兩邊的表達(dá)式時(shí)存在著差別。使用不同的邏輯運(yùn)算符,其運(yùn)算規(guī)則也會(huì)有所

36、不同,如表2-7所示為邏輯運(yùn)算的可能結(jié)果。表2-7 邏輯運(yùn)算符進(jìn)行邏輯運(yùn)算的結(jié)果條件1的返回結(jié)果條件2的返回結(jié)果&&運(yùn)算結(jié)果|運(yùn)算結(jié)果!條件1的結(jié)果truetruetruetruefalsetruefalsefalsetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue【例2-14】定義int類型的變量num1、num2和num3,分別對(duì)其進(jìn)行賦值,并使用邏輯運(yùn)算符&&、|和!進(jìn)行運(yùn)算。示例代碼如下:public class bianliang public static void main(string

37、 args) int num1 = 10, num2 = 20, num3 = 30; system.out.println("num1<num2并且num1=num3,對(duì)嗎?" + (num1 < num2) && (num1 = num3); system.out.println("num1<num2或者num=num3,對(duì)嗎?" + (num1 < num2) | (num1 = num3); system.out.println("num1>num2或者num2>num3,對(duì)嗎?&qu

38、ot; + (num1 > num2) | (num2 > num3); system.out.println("num2!=num3的否定結(jié)果是:" + !(num2 != num3); 在上述代碼中,由于num1<num2的結(jié)果為true,num1=num3的結(jié)果為false,使用邏輯與“&&”運(yùn)算符時(shí)的返回結(jié)果為false,該運(yùn)算符要求兩個(gè)返回結(jié)果都為true。而使用邏輯或“|”運(yùn)算符時(shí)的返回結(jié)果為true,該運(yùn)算符要求一個(gè)條件滿足true即可。運(yùn)行上述代碼,結(jié)果如下:num1<num2并且num1=num3,對(duì)嗎?falsen

39、um1<num2或者num=num3,對(duì)嗎?truenum1>num2或者num2>num3,對(duì)嗎?falsenum2!=num3的否定結(jié)果是:false2.5.5 位運(yùn)算符在java的位運(yùn)算符中,除按位與和按位或運(yùn)算符外,其他運(yùn)算符只能用于整數(shù)之間的運(yùn)算。位運(yùn)算符是針對(duì)整數(shù)在內(nèi)存中存儲(chǔ)的二進(jìn)制數(shù)據(jù)流中的位進(jìn)行操作的。java語言中的位運(yùn)算符又分為按位運(yùn)算符和移位運(yùn)算符。1按位運(yùn)算符按位運(yùn)算符是對(duì)整數(shù)的二進(jìn)制數(shù)據(jù)流中的每個(gè)位進(jìn)行運(yùn)算,該運(yùn)算符包括4種運(yùn)算,如表2-8所示。表2-8 按位運(yùn)算符及其運(yùn)算規(guī)則運(yùn) 算 符說 明運(yùn)算規(guī)則(0和1分別表示二進(jìn)制位置)&按位與0&a

40、mp;00,1&11,0&10,1&00|按位或0|00,1|11,0|11,1|01按位異或000,110,011,101按位取反01,10從表2-8中可以看出,按位與運(yùn)算的兩個(gè)二進(jìn)制位數(shù)都為1時(shí),結(jié)果才為1,否則結(jié)果為0;按位或運(yùn)算只要有一個(gè)二進(jìn)制位數(shù)為1,則結(jié)果為1,否則為0;按位異或運(yùn)算的兩個(gè)二進(jìn)制位數(shù)相同(同時(shí)為0或1)時(shí),結(jié)果為0,否則為1;按位取反運(yùn)算符為一元運(yùn)算符,取反運(yùn)算是將二進(jìn)制中的0變?yōu)?,1變?yōu)??!纠?-15】分別使用&、|和運(yùn)算6與9的結(jié)果,并輸出最終的返回值。示例代碼如下:public class test public stati

41、c void main(string args) system.out.println("6&9的運(yùn)算結(jié)果:"+(6&9);system.out.println("6|9的運(yùn)算結(jié)果:"+(6|9);system.out.println("69的運(yùn)算結(jié)果:"+(69);執(zhí)行上述代碼,輸出結(jié)果如下:6&9的運(yùn)算結(jié)果:06|9的運(yùn)算結(jié)果:769的運(yùn)算結(jié)果:15以6&9為例,6的二進(jìn)制數(shù)是110,9的二進(jìn)制數(shù)是1001,將6的二進(jìn)制數(shù)前面補(bǔ)0變成0110,分別對(duì)它們的二進(jìn)制位數(shù)進(jìn)行&運(yùn)算,運(yùn)算結(jié)果為00

42、00,即0,0的十進(jìn)制數(shù)仍然為0,因此輸出0。以6|9為例,將6和9的二進(jìn)制位數(shù)分別進(jìn)行|運(yùn)算,結(jié)果為1111,1111的十進(jìn)制數(shù)為15,因此輸出15。 提示:在java中,可以將按位運(yùn)算符與賦值運(yùn)算符“=”組合為復(fù)合賦值運(yùn)算符。例如,num&=6等價(jià)于num=num&6,其中num是一個(gè)變量。2移位運(yùn)算符移位運(yùn)算符也是對(duì)整數(shù)的二進(jìn)制表示中的位進(jìn)行操作。java中的移位運(yùn)算包括3種,分別為左移位運(yùn)算、有符號(hào)整數(shù)的右移位運(yùn)算和無符號(hào)整數(shù)的右移位運(yùn)算。l 左移位運(yùn)算:以m<<n為例,將整數(shù)m的二進(jìn)制數(shù)向左移動(dòng)整數(shù)n指定的位數(shù),并用n個(gè)0補(bǔ)充二進(jìn)制數(shù)據(jù)。其實(shí),向左移n位,

43、就相當(dāng)于乘以2的n次方。l 有符號(hào)右移位運(yùn)算:以m>>n為例,將整數(shù)m的二進(jìn)制數(shù)向右移動(dòng)整數(shù)n指定的位數(shù),并用n個(gè)符號(hào)位補(bǔ)充二進(jìn)制數(shù)的開頭(負(fù)數(shù)的符號(hào)位為1,正數(shù)為0)。其實(shí)右移n位,相當(dāng)于除以2的n次方。l 無符號(hào)右移位運(yùn)算:以m>>>n為例,將整數(shù)m的二進(jìn)制數(shù)向右移動(dòng)整數(shù)n指定的位數(shù),并用n個(gè)符號(hào)位補(bǔ)充二進(jìn)制數(shù)的開頭(負(fù)數(shù)的符號(hào)位為1,正數(shù)為0)。2.5.6 其他運(yùn)算符除了前面小節(jié)介紹的幾種運(yùn)算符外,java還提供了其他的運(yùn)算符,如:自增運(yùn)算符、自減運(yùn)算符以及三元運(yùn)算符。從某種意義上來說,可以將自增運(yùn)算符和自減運(yùn)算符看作是算術(shù)運(yùn)算符。1自增運(yùn)算符自增運(yùn)算符是自

44、動(dòng)將變量值加1。它又分為兩種:一種是前自加,先進(jìn)行加1運(yùn)算,再賦值,即+a;另一種是后自加,先賦值,然后再進(jìn)行加1運(yùn)算,即a+。運(yùn)算符放在不同的位置,最終得到的結(jié)果也是不同的:前自加會(huì)將變量值加1,然后再使用該變量參與表達(dá)式的運(yùn)算;后自加會(huì)將變量值參與表達(dá)式的運(yùn)算,然后再將變量值加1?!纠?-16】聲明int類型的變量a和b,然后將變量a前自加后輸出,將變量b后自加后輸出,最終輸出兩個(gè)變量相加的結(jié)果。示例代碼如下:public class test public static void main(string args) int a = 10;int b = 10;system.out.pri

45、ntln("變量a的值前自加:"+(a+);system.out.println("變量b的值后自加:"+(+b);system.out.println("變量a和b的相加結(jié)果:"+(a+b);執(zhí)行上述代碼,輸出結(jié)果如下:變量a的值前自加:10變量b的值后自加:11變量a和b的相加結(jié)果:22在該例子中,由于變量a進(jìn)行前自加運(yùn)算,因此先將原來的值輸出,再加上1,變成11參與后面的運(yùn)算。由于變量b進(jìn)行后自加運(yùn)算,因此會(huì)將原來的值加上1,再進(jìn)行輸出。此時(shí)變量b的值變成11后再參與后面的運(yùn)算。2自減運(yùn)算符自減運(yùn)算符是自動(dòng)將變量值減1。與自加運(yùn)

46、算符一樣,自減運(yùn)算符也分為兩種:一種是前自減,先進(jìn)行減1運(yùn)算,再賦值,即-a;另一種是后自減,先賦值,然后再進(jìn)行減1運(yùn)算,即a-?!纠?-17】聲明int類型的變量a和b,然后將變量a前自減后輸出,將變量b后自減后輸出,最終輸出兩個(gè)變量相加的結(jié)果。示例代碼如下:public class test public static void main(string args) int a = 20;int b = 15;system.out.println("變量a的值前自減:"+(a-);system.out.println("變量b的值后自減:"+(-b);

47、system.out.println("變量a和b的相加結(jié)果:"+(a+b);執(zhí)行上述代碼,輸出結(jié)果如下:變量a的值前自減:20變量b的值后自減:14變量a和b的相加結(jié)果:33 注意:自增和自減運(yùn)算符只能操作變量,不能操作常量或表達(dá)式,且該變量類型必須是整型、浮點(diǎn)型或java包裝類型,如(num+2)+是不正確的。3三元運(yùn)算符java中使用?:表示三元運(yùn)算符。基本形式如下:布爾表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2;在上述語法中,如果?左邊的布爾表達(dá)式的值為true,則整個(gè)表達(dá)式的值為“表達(dá)式1”的值;否則為“表達(dá)式2”的值。使用三元運(yùn)算符,“表達(dá)式1”和表達(dá)式并不會(huì)都被執(zhí)行。

48、【例2-18】聲明int類型的score變量,判斷變量的值是否小于60。如果小于60則返回結(jié)果是“不及格,仍然需要努力”;否則返回結(jié)果是“已經(jīng)及格了,繼續(xù)保持”,并將返回結(jié)果保存到result變量中,最后輸出result變量的值。示例代碼如下:public class test public static void main(string args) int score = 56;string result = score<60?"不及格,仍然需要努力":"已經(jīng)及格了,繼續(xù)保持"system.out.println(result);三元運(yùn)算符可以使

49、用if-else語句來代替。以下代碼等價(jià)于上述代碼:int score = 56;if(score<60) system.out.println("不及格,仍然需要努力");else system.out.println("已經(jīng)及格了,繼續(xù)保持");2.5.7 運(yùn)算符的優(yōu)先級(jí)一個(gè)表達(dá)式中可以存在多個(gè)運(yùn)算符,當(dāng)需要進(jìn)行混合運(yùn)算時(shí),系統(tǒng)會(huì)根據(jù)運(yùn)算符的優(yōu)先級(jí)來決定執(zhí)行順序。優(yōu)先級(jí)不同會(huì)導(dǎo)致最后得出的結(jié)果差別很大,如表2-9列出了運(yùn)算符的優(yōu)先級(jí)別。表2-9 運(yùn)算符的優(yōu)先級(jí)別優(yōu) 先 級(jí)說 明運(yùn) 算 符最高括號(hào)()自上向下優(yōu)先級(jí)別降低后置運(yùn)算符正負(fù)號(hào)+、-一元

50、運(yùn)算符+、-、!乘除*、/、%加減+、-移位運(yùn)算>>、>>>、<<比較大小>、>=、<、<=比較是否相等=、!=按位與運(yùn)算&按位異或運(yùn)算續(xù)表優(yōu) 先 級(jí)說 明運(yùn) 算 符自上向下優(yōu)先級(jí)別降低按位或運(yùn)算|邏輯與運(yùn)算&&邏輯或運(yùn)算|三元運(yùn)算符?:最低賦值及復(fù)合賦值運(yùn)算=、+=、-=、*=、/=、%=、>>=、>>>=、<<=、&=、=、|=在表2-9所列運(yùn)算符的優(yōu)先級(jí)中,運(yùn)算符的優(yōu)先級(jí)自上而下逐漸降低。其中,優(yōu)先級(jí)最高的是之前未提到的括號(hào),它的使用與數(shù)學(xué)運(yùn)算中的括

51、號(hào)一樣,用來指定括號(hào)內(nèi)的表達(dá)式要優(yōu)先處理,括號(hào)內(nèi)的多個(gè)運(yùn)算符仍然要依照表2-9的優(yōu)先級(jí)順序進(jìn)行運(yùn)算。對(duì)于處在同一層級(jí)的運(yùn)算符,則按照它們的結(jié)合性,即“先左后右”或是“先右后左”的順序來執(zhí)行。java中除賦值運(yùn)算符的結(jié)合性為“先右后左”外,其他運(yùn)算符的結(jié)合性都是“先左后右”。2.6 關(guān)鍵字列表在2.2.1節(jié)介紹標(biāo)識(shí)符的命名規(guī)則中提到過,標(biāo)識(shí)符的名稱不能是java的關(guān)鍵字。簡(jiǎn)單來說,關(guān)鍵字是java語言中已經(jīng)被賦予特定意義的一些單詞,不可以再把這些單詞定義為標(biāo)識(shí)符來使用。例如,在前面介紹的int、double、float和char等類型都是java關(guān)鍵字。完整的關(guān)鍵字如表2-10所示。表2-10

52、java關(guān)鍵字列表intpublicthisfinallybooleanabstractcontinuefloatlongshortthrowthrowsreturnbreakforstaticnewinterfaceifgotodefaultbytedocasestrictfppackagesupervoidtryswitchelsecatchimplementsprivatefinallclassextendsvolatilewhilesynchronizedinstanceofcharprotectedimporttransientenumdefaultdoubleassertconst

53、nativevolatile2.7 java編碼規(guī)范編碼規(guī)則可以培養(yǎng)程序員在編程時(shí)注意一些細(xì)節(jié)問題的良好習(xí)慣,提高程序的可讀性,讓程序員能夠盡快地理解新的代碼,并幫助大家編寫出規(guī)范的、利于維護(hù)的java代碼。2.7.1 代碼編寫規(guī)則規(guī)整的代碼格式能夠?yàn)槌绦虻拈_發(fā)和后期代碼的維護(hù)帶來方便。因此,在學(xué)習(xí)開發(fā)的過程中,要形成規(guī)范代碼編寫格式的良好習(xí)慣,編寫代碼時(shí)應(yīng)該注意以下幾點(diǎn)。l 在聲明變量時(shí),盡量使每個(gè)變量的聲明單獨(dú)占一行,即使是聲明相同類型的變量,這樣做也有助于加入注釋。局部變量應(yīng)在聲明的同時(shí)進(jìn)行初始化,在類型和標(biāo)識(shí)符號(hào)之間可以使用空格或制表符。聲明兩個(gè)變量,每個(gè)變量獨(dú)占一行,并使用制表符使變

54、量名對(duì)齊。示例代碼如下:intage = 12;doubleprice = 12;l 語句應(yīng)以英文狀態(tài)下的分號(hào)“;”結(jié)束,且應(yīng)使每條語句單獨(dú)占一行。在寫返回語句時(shí),書寫形式為return value,如果以表達(dá)式形式存在,則應(yīng)該使用小括號(hào)。示例代碼如下:return false;return (10>20)?"10大于20":"10小于20");l 盡量不要使用技巧性很高,難懂又容易混淆判斷的語句,否則會(huì)給后期程序的維護(hù)帶來困難,因?yàn)楹茈y保證程序的開發(fā)與維護(hù)是同一個(gè)人。l 代碼進(jìn)行縮進(jìn)時(shí)應(yīng)使用制表符來代替空格。l 編寫代碼時(shí),要適當(dāng)?shù)厥褂每招蟹指舸?/p>

55、碼,并且應(yīng)在難以理解或關(guān)鍵的部分加入注釋,這有助于閱讀者很快地了解代碼的結(jié)構(gòu)。2.7.2 常用代碼注釋在java的編寫過程中需要對(duì)一些程序進(jìn)行注釋,除了自己方便閱讀外,也讓別人更好地理解自己的程序。注釋可以是編程思路或者是程序的作用,總而言之就是方便自己與他人更好地閱讀。在java源文件的任意位置都可以加入注釋,java編譯器會(huì)忽略程序中的注釋語句。因此,在注釋語句中編寫的任何東西,對(duì)編譯出來的程序不會(huì)有任何影響。java語言提供了3種形式的注釋,即單行注釋、多行注釋和文檔注釋。1單行注釋單行注釋用于注釋一行,使用/符號(hào)開始,一直到換行為止的所有內(nèi)容均作為注釋而被編譯器忽略。語法如下:/注釋內(nèi)容【例2-19】定義double類型的3個(gè)變量,并對(duì)這3個(gè)變量進(jìn)行注釋。示例代碼如下:double originalprice = 234.5; /商品原價(jià)double discou

溫馨提示

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