2_1.4 final 變數
在撰寫程式以解決問題時,經常會使用算術的四則運算,像是在計算幾何圖形的面積、周長,以及體積,就可能同時使用加法與乘法計算。看看底下的範例
Chap2_1_9
結果
程式說明:
1. 上面程式在計算圓的周長和面積,使用的公式分別是,圓周長=直徑*圓周率,以及圓面積 =半徑*半徑*圓周率。
2. 變數r表示圓半徑,直徑就等於2*radius。另外,我們使用3.14來表示圓周率,讓程式方便計
算圓周長和面積。最後,將計算得到的結果顯示到螢幕。
事實上,圓周率的值並不等於3.14,而是無限小數3.14159265...。所以,我們基於計算上的方便,將該值簡化成3.14。但是,如果我們需要更高的精確度,而必須將3.14更改成3.1416的話,就會碰到更改數值的問題。當然,在這個範例中,我們只需要更改兩個地方,好像不是很困難。你可以直接找到需要更改的地方,將數值3.14更改成3.1416;或者,你也可以利用編譯器的「尋找/取代」功能,逐筆修改數值。
不過,在一個實際的專案裡,這個問題可能變得非常複雜。因為,你可能會需要更改到非常多的檔案。這時候,利用變數來代表圓周率,應該是個不錯的解決方式。例如,可以利用變數PI來表示圓周率,然後依照需求來更改PI的數值,像是令PI=3.1416,就可解決這個問題。
但是,對一個專案而言,圓周率(PI)應該是個固定數值。也就是說,你不會希望在不同的檔案裡,變數PI的數值內容會不同。換句話說,對同個專案來說,變數PI一旦給了數值,就不會在其他地方隨意更改它的內容。為了達到這個目的,我們可以這樣宣告final PI=3.1416;。
Chap2_1_10.java
結果
程式說明:
1. 本程式利用final變數PI來表示圓周率,讓程式更具可讀性,也可依照需求更彈性地修改程 式。
2. 使用final變數除了讓程式明瞭易懂外,也可以集中管理一些特定數值,本例中以final變數PI來 表示圓周率就是很好的示範。
所以,我們可以將 final 變數,視為一種存放固定東西的箱子。當這個箱子已經有東西在裡面時,它就不允許再放入其它的東西。另外,不論是初始化或指定數值,對final變數而言,都只有一次的機會。.因此,應該盡量初始化final變數。
[重要] 使用final變數來表示特定的數值。
[補充] 建議使用大寫字母來命名final變數。
挑戰題 :
Err2_1_4.java
結果
在撰寫程式以解決問題時,經常會使用算術的四則運算,像是在計算幾何圖形的面積、周長,以及體積,就可能同時使用加法與乘法計算。看看底下的範例
Chap2_1_9
// 計算圓的周長和面積(圓周率以浮點數常值表示) class Chap2_1_9 { public static void main(String[] args) { int radius = 3; //代表圓的半徑為3 System.out.println("圓半徑= " + radius); System.out.println("圓周長 = " + 2 * 3.14 * radius+ "。"); System.out.println("圓面積 = " + 3.14 * radius* radius+ "。"); } } |
結果
圓半徑= 3 圓周長 = 18.84。 圓面積 = 28.259999999999998。 |
程式說明:
1. 上面程式在計算圓的周長和面積,使用的公式分別是,圓周長=直徑*圓周率,以及圓面積 =半徑*半徑*圓周率。
2. 變數r表示圓半徑,直徑就等於2*radius。另外,我們使用3.14來表示圓周率,讓程式方便計
算圓周長和面積。最後,將計算得到的結果顯示到螢幕。
事實上,圓周率的值並不等於3.14,而是無限小數3.14159265...。所以,我們基於計算上的方便,將該值簡化成3.14。但是,如果我們需要更高的精確度,而必須將3.14更改成3.1416的話,就會碰到更改數值的問題。當然,在這個範例中,我們只需要更改兩個地方,好像不是很困難。你可以直接找到需要更改的地方,將數值3.14更改成3.1416;或者,你也可以利用編譯器的「尋找/取代」功能,逐筆修改數值。
不過,在一個實際的專案裡,這個問題可能變得非常複雜。因為,你可能會需要更改到非常多的檔案。這時候,利用變數來代表圓周率,應該是個不錯的解決方式。例如,可以利用變數PI來表示圓周率,然後依照需求來更改PI的數值,像是令PI=3.1416,就可解決這個問題。
但是,對一個專案而言,圓周率(PI)應該是個固定數值。也就是說,你不會希望在不同的檔案裡,變數PI的數值內容會不同。換句話說,對同個專案來說,變數PI一旦給了數值,就不會在其他地方隨意更改它的內容。為了達到這個目的,我們可以這樣宣告final PI=3.1416;。
Chap2_1_10.java
// 計算圓的周長和面積(使用final變數表示圓周率) class Chap2_1_10 { public static void main(String[] args) { final double PI = 3.1416; // 圓周率 int radius = 3; System.out.println("圓周長 = " + 2 * PI * radius + "。"); System.out.println("圓面積 = " + PI * radius* radius + "。"); } } |
結果
圓周長 = 18.8496。 圓面積 = 28.2744。 |
程式說明:
1. 本程式利用final變數PI來表示圓周率,讓程式更具可讀性,也可依照需求更彈性地修改程 式。
2. 使用final變數除了讓程式明瞭易懂外,也可以集中管理一些特定數值,本例中以final變數PI來 表示圓周率就是很好的示範。
所以,我們可以將 final 變數,視為一種存放固定東西的箱子。當這個箱子已經有東西在裡面時,它就不允許再放入其它的東西。另外,不論是初始化或指定數值,對final變數而言,都只有一次的機會。.因此,應該盡量初始化final變數。
[重要] 使用final變數來表示特定的數值。
[補充] 建議使用大寫字母來命名final變數。
挑戰題 :
Err2_1_4.java
class Err2_1_4{ public static void main(String[] args){ final int x = 5; int y = 3; System.out.println("x + y = " + (x + y)); x = 6; y = 9; System.out.println("x + y = " + (x+y)); } } |
結果
D:\chap2\err\Err2_1_4.java:8: cannot assign a value to final variable x x = 6; ^ 1 error |
0 意見:
張貼留言