天天看點

《21天學通Java(第6版)》—— 2.2 變量和資料類型

本節書摘來異步社群《21天學通java(第6版)》一書中的第2章,第2.2節,作者:【美】rogers cadenhead,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

21天學通java(第6版)

在第1章建立的應用程式volcanorobot中,您使用變量來跟蹤資訊。變量是程式運作時能夠存儲資訊的地方。可在程式的任何地方對其中的值進行修改—是以被稱為變量。

要建立變量,必須提供名稱并指定它存儲的資訊類型。還可以在建立變量的同時給它指定初始值。

在java中,有3種變量:執行個體變量、類變量和局部變量。

正如第1章中指出的,執行個體變量用于定義對象的屬性。

類變量定義類的屬性,适用于類的所有執行個體。

局部變量用于方法定義乃至方法中更小的語句塊中。僅當java虛拟機執行這些方法或語句塊時,它們才被使用,離開方法或塊之後,它們将不複存在。

雖然這3種變量的建立方式極其相似,但在使用方式上,類變量和執行個體變量不同于局部變量。本章介紹局部變量,而執行個體變量和類變量将在第3章介紹。

在java程式中使用變量之前必須先建立它—聲明其名稱和存儲的資訊類型。首先指出資訊類型,然後是變量名,下面是一些變量聲明的例子:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

在上述示例中,int類型表示整數,string是用來存儲文本的對象,boolean用來存儲true/false值。

就像其他java語句一樣,局部變量可在方法的任何地方聲明,但必須在使用前聲明。

下面的示例在程式的main()方法開頭聲明了3個變量:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

建立多個類型相同的變量時,可在同一條語句中聲明它們,并用逗号将各個變量分開。下面的語句聲明了3個名為street、city和state的string變量:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

聲明變量時,可以使用等号給它指派。下面的語句建立新變量并給它們指定初始值:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

正如最後一條語句表明的,可以使用逗号分隔的方式給多個類型相同的變量指派。

對于局部變量,在程式中使用它之前,必須給它指派,否則程式将無法通過編譯。是以,良好的習慣是給所有局部變量指定初始值。

預設情況下,執行個體變量和類變量的初始值取決于其資料類型。

數值變量:0。

字元變量:'0'。

布爾變量:false。

對象:null。

在java中,變量名必須是以字母、下劃線(_)或美元符($)打頭。

變量名不能以數字打頭。在第一個字元之後,變量名可包含任何字母和數字的組合。

注意另外,java語言使用unicode字元集,該字元集包括标準字元集,外加幾千個用于表示國際字母的字元。有unicode字元号的重音字元和其他符号也可用于變量名中。

在程式中給變量命名并使用它時,别忘了java是區分大小寫的—字母的大小寫必須一緻。是以,同一個程式中可以有變量x和x,而rose、rose和rose是不同的變量。

在本書或其他地方的程式中,java變量都被賦予一個有意義的名稱,它們由多個單詞組合而成。為友善辨識,可使用下述通用規則:

變量名的第一個字母小寫;

變量名中其他單詞的第一個字母大寫;

其他字母都小寫。

下面的變量聲明遵循了上述命名規則:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

除名稱外,變量聲明還必須包括存儲的資訊類型,這可以是:

基本資料類型,如int或boolean;

類名或接口名;

數組。

關于如何聲明和使用數組變量,将在第4章介紹。本章重點介紹其他變量類型。

1.資料類型

java提供了8種基本資料類型,用于存儲整數、浮點數、字元和布爾值。它們通常被稱為簡單類型(primitive type),因為它們是java内置的而不是對象,這使得它們更容易建立和使用。不管在什麼作業系統和平台上,這些資料類型的長度和特征都相同,這與其他程式設計語言的某些資料類型不同。

用于存儲整數的資料類型有4種,如表2.1所示。具體使用哪種類型取決于要存儲的整數大小。

《21天學通Java(第6版)》—— 2.2 變量和資料類型

所有這些類型都是有符号的,這意味着它們既可以存儲正數,也可以存儲負數。給變量指定哪種類型取決于需要存儲的值的範圍。所有這些整型變量都不能正确存儲超出其取值範圍的值,是以在指定類型時一定要小心。

另一種數值是浮點數,其類型為float或double。浮點數是帶小數的數字。大多數情況下,float類型已經足夠了,因為其取值範圍為1.4e-45到2.4e+38;如果還不夠,可使用double類型,其取值範圍為4.9e-324到1.7e+308。

char類型用于存儲單個字元,如字母、數字、标點和其他符号。

最後一種基本類型是boolean。正如前面介紹過的,其取值為true或false。

所有這些變量類型名都是小寫的,在程式中必須這樣使用它們。存在與這些資料類型名稱相同,但大小寫不同的類,如boolean和char。在java程式中,建立和引用它們的方式不同,是以大多數情況下不能互換。下一章将介紹如何使用這些特殊的類。

注意如果算上void,java中實際上有9種基本類型。void表示“空”(nothing),用于指出方法不傳回任何值。

2.類的類型

除基本資料類型外,變量的類型還可以是類,如下所示:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

當變量的類型為類時,它指的是這種類或其子類的一個對象。

在上述代碼中,最後一條語句聲明一個名為vr的變量,用于存儲volcanorobot對象。下一章将介紹如何将對象和變量關聯起來。

聲明變量後,可以用指派運算符(等号,=)給它指派。下面是兩個指派語句的例子:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

如果需要存儲在程式運作時可以修改的資訊,使用變量很有用。

對于在程式運作過程中一直不變的值,可以用一種特殊的變量—常量。常量是值保持不變的變量。這裡的“變量”有些用詞不當。

為對象的所有方法定義共享值時,常量很有用。在java中,可以建立各種類型的常量:執行個體常量、類常量和局部常量。

要聲明常量,可在變量聲明前加上關鍵字final,并指定初始值,如下所示:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

可使用常量來表示對象的不同狀态,然後測試這些狀态。假設有一個這樣的程式,它直接從數字鍵盤讀取方向輸入—8表示向上,4表示向左等,則您可以将這些值定義為int常量:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

常量讓程式更容易了解。為說明這一點,請看下面哪條語句更清楚地說明了其功能:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

注意在上述語句中,常量名都為大寫,如debug和left。很多java程式員都這樣做,以表明這是常量而不是變量,但java并未要求常量名必須大寫。

本章要介紹的第一個項目是一個這樣的java應用程式:建立多個變量,給它們賦初始值,然後顯示其中兩個變量的值。啟動netbeans并建立一個java程式。為此,選擇菜單“檔案”>“建立檔案”,将類别設定為java,将檔案類型設定為“空java檔案”,再将類命名為variables。在源代碼編輯器中,輸入程式清單2.1所示的代碼。

程式清單2.1 variables.java的完整源代碼

《21天學通Java(第6版)》—— 2.2 變量和資料類型

選擇菜單“檔案”>“儲存”将該檔案存盤。netbeans将自動編譯該應用程式—如果沒有錯誤。選擇菜單“運作”>“運作檔案”以運作該程式,它将生成兩行輸出,如下所示:

輸出:

《21天學通Java(第6版)》—— 2.2 變量和資料類型

這個類使用了4個局部變量和1個常量,并在第10~11行使用system.out.println()來生成輸出。

system.out.println()是一個用于将字元串和其他資訊顯示到标準輸出裝置(通常是螢幕)上的方法。

這個方法( )接收一個參數:一個字元串。為将多個變量或字面值作為println( )的參數,使用運算符+将它們合并成一個字元串。

java還提供了方法system.out.print(),它不在字元串後回車。要在同一行顯示多個字元串,可連續調用方法print(),而不是println()。