語言基礎 我們先看看一個具體例子,給你們有個先入為主的感覺。以下是一個BasicsDemo程序,它的作用是從1加到10,并顯示結果: public class BasicsDemo { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.java編程語言的許多傳統特性,其中包括變量、操作符和流程控制語句。以上的代碼可能看起來有點復雜,但是一旦你學習完本系列教程,你就會發覺它實際上很簡單。本節教程將教給你一些JAVA編程語言的基礎。 語言基礎 3.1 變量 你可以在程序中使用變量來容納數據。這一小節將數據類型、怎樣初始化變量以及怎樣在代碼塊中引用變量。 實際上,對象是存儲它的狀態在變量中的。它的具體定義為:變量是用標識符命名的數據項。 你必須清除地為你想在程序中使用地每一個變量提供一個名字和類型。這個變量的名字必須是一個合法的標識符:以字母開頭的一串Unicode字符。你可以使用變量名來引用變量包含的數據。這個變量的類型決定了什么類型的數值可以容納以及什么的操作可以對它進行操作。為了得到一個變量、類型和名字,你必須編寫變量聲明,如下: type name 除了名字和類型你還要給變量一個作用域。變量的作用域是由變量聲明位置決定的。 以下MaxVariablesDemo程序,聲明了八個不同類型的變量,如下: public class MaxVariablesDemo { public static void main(String args[]) { // 整型數 byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; // 實型數 float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; // 其它的數據類型:字符型和布爾型等等 char aChar = 'S'; boolean aBoolean = true; // 將它們顯示出來 System.out.println("The largest byte value is " + largestByte); System.out.println("The largest short value is " + largestShort); System.out.println("The largest integer value is " + largestInteger); System.out.println("The largest long value is " + largestLong); System.out.println("The largest float value is " + largestFloat); System.out.println("The largest double value is " + largestDouble); if (Character.isUpperCase(aChar)) { System.out.println("The character " + aChar + " is upper case."); } else { System.out.println("The character " + aChar + " is lower case."); } System.out.println("The value of aBoolean is " + aBoolean); } 這個程序的輸出為: The largest byte value is 127 The largest short value is 32767 The largest integer value is 2147483647 The largest long value is 9223372036854775807 The largest float value is 3.40282e+38 The largest double value is 1.79769e+308 The character S is upper case. The value of aBoolean is true 下面的部分具體介紹了變量的各個方法,包括數據類型、名字、作用域、初始化以及final變量。這個MaxVariablesDemo程序使用了你可能不熟悉并且不在本節提到的兩項:幾個常數MAX_VALUE以及一個if-else語句。每個MAX_VALUE常數是定義在由JAVA平臺提供的其中一個數字類中,它是最大的數值。 語言基礎 3.1.1 數據類型 每一個變量必須有一個數據類型。一個變量的數據類型決定了變量能容納的數值和操作符。比如 ,在MaxVariablesDemo程序中,聲明int largestInteger決定了largestInteger是一個整型數據類型(int)。整型只能容納整型數(可以是正數也可以是負數)。你可以完成算術操作,比如,整型變量的加法等等。 JAVA程序語言有兩類的數據類型:原始和引用。一個原始類型的變量為它的類型包含了適當大小和格式的單一數值:一個數字、字符或者一個布爾型數值。比如,一個整型數值是一個32位數據。 下面表格所有的JAVA支持的所有原始數據類型,還給出了它們的大小和格式以及簡短的描述。MaxVariablesDemo程序為每一個原始類型聲明了一個變量: 在其它語言中,原始類型數據的格式和大小可能依靠于程序運行的平臺。相比之下,Java程序語言可以指定原始數據類型的大小和格式。因此,你不必擔心系統從屬問題。 你可以在你的代碼中直接為原始變量設置數值。比如,假如你需要為一個整型變量設置為4,你可以編寫以下代碼: int anInt = 4; 數字4就是一個整型數值。下面是各種原始數值舉例: 總得說來,沒有小數點的數就是整型。你可以通過在數字后面加一個'L' 或者'l'指定為一個長整型。一般使用'L'而不使用'l',因為'l'很輕易與數字'1'混起來。有小數點的數為雙精度類型。你可以在數字后面放置'f' 或者 'F'來指定為實數。而字符型數值可以是處在單引號中間的任何單一的Unicode字符;兩個布爾型數是true和false。 數組、類以及接口是引用的類型。引用類型變量的數值跟原始類型的數值比較起來,它是數值的一個引用或者是由變量代表的數值。 一個引用稱為一個指針或者在其它語言中稱為內存地址。JAVA編程語言象其它語言一樣不支持地址的具體使用,你可以使用變量的名字來取代。 語言基礎 3.1.1 數據類型 你可以在你的代碼中直接為原始變量設置數值。比如,假如你需要為一個整型變量設置為4,你可以編寫以下代碼: int anInt = 4; 數字4就是一個整型數值。下面是各種原始數值舉例: 總得說來,沒有小數點的數就是整型。你可以通過在數字后面加一個'L' 或者'l'指定為一個長整型。一般使用'L'而不使用'l',因為'l'很輕易與數字'1'混起來。有小數點的數為雙精度類型。你可以在數字后面放置'f' 或者 'F'來指定為實數。而字符型數值可以是處在單引號中間的任何單一的Unicode字符;兩個布爾型數是true和false。 數組、類以及接口是引用的類型。引用類型變量的數值跟原始類型的數值比較起來,它是數值的一個引用或者是由變量代表的數值。 一個引用稱為一個指針或者在其它語言中稱為內存地址。JAVA編程語言象其它語言一樣不支持地址的具體使用,你可以使用變量的名字來取代。 語言基礎 3.1.2 變量名 程序是用變量名來引用變量數值的。比如,當顯示largestByte變量的數值的時候,MaxVariablesDemo程序就使用名字largestByte。一個名字,比如largesByte包含了一個單一的標識符,被稱為簡單的名字(即變量名)。在JAVA編程語言中,對于變量名有下面的必須滿足: 它必須是一個合法的標識符。一個標識符是以字母開頭的一串Unicode字符。 它必須不是一個要害字、布爾型字符(true或者false)或者保留字NULL。 它必須在作用域中是唯一的。在不同的作用域才答應存在相同名字的變量。在一些條件下,假如變量被定義在一個嵌套的代碼塊中,它可能和其它變量共享相同的名字。這點在以后的教程中會提到。 這里有個約定:變量名是以小寫字母開頭,而類名是以一個大寫字母開頭的。假如變量名包含了多個單詞,而每個單詞要組合在一起,則在每個單詞的第一個字母大寫,比如IsVisible。而下劃線(_)可以處在變量的任何地方,但是一般地它只用在常數中分離單詞,因為常數名都是用大寫字母的,利用下劃線可以看得更清除。 語言基礎 3.1.3 作用域 變量的作用域是一個程序的區域,在上面變量可以通過它的名字來引用。其次,作用域也決定什么時候系統為變量創建和清除內存。作用域只應用成員變量并決定是否變量可以從所在類的外部使用。在程序中變量聲明的位置建立它的作用域并且將它放置到以下四類之一: 成員函數作用域 當地變量作用域 方法參數作用域 異常處理參數作用域 (圖14) 如圖14所示。成員變量示類或者對象的成員。它是在類中定義而不在任何方法或者構造函數中定義。成員函數的作用域是類的完全定義。但是,當成員是使用在成員初始化表達式中的時候,成員的定義需要在它使用之前出現。在后面的教程中我們要再深入學習成員變量,這里就不講了。 你可以在一個代碼塊中定義當地變量??偟恼f來,當地變量的作用域從它的聲明擴展到了它被定義的代碼塊結束。在MaxVariablesDemo中,定義在主方法中的所有變量都是當地變量。程序中的每一個變量的作用域從變量的定義擴展到了主方法的結束,它在程序代碼中是用右括號}來指示的。 參數是方法或者構造函數的正式參數,它們用于傳遞數值給方法和構造函數。參數的作用域是整個方法或者構造函數。 異常處理參數跟參數很相似,差別在是前者是傳遞參數給異常處理而后者是傳遞給方法或者構造函數。異常處理參數的作用域處在{和}之間的代碼,它緊跟著catch語句。利用異常來處理