国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中final變量使用總結

2019-11-26 15:08:54
字體:
來源:轉載
供稿:網友

final關鍵字可用于變量聲明,一旦該變量被設定,就不可以再改變該變量的值。 通常final定義的變量為常量。如:

復制代碼 代碼如下:

final double PI = 3.14; 

當在程序中使用PI這個常量時,它的值就是3.14,如在程序中再次對定義為final的常量賦值,編譯器將不能接受;
final關鍵字定義的變量必須在聲明時對其進行賦值操作。final除了可以修飾基本數據類型的常量,還可以修飾對象引用。由于數組也可以被用作一個對象引用,所以final可以修飾數組。一旦一個對象引用被修飾為final后,它只能恒定指向一個對象,無法將其改變為另一個對象。一個既是static又是final的字段只占據一段不能改變的存儲空間。如下例:

import static java.lang.System.out; import java.util.Random; class Test{   int i = 0; } public class FinalData {   static Random rand = new Random();   private final int VALUE_1 = 9;//final定義的變量必須使用大寫字母命名   private static final int VALUE_2 = 10;//并且使用下劃線進行連接;   private final Test test = new Test();   private Test test2 = new Test();   private final int[] a = {1,2,3,4,5,6};   private final int i4 = rand.nextInt(20);   private static final int i5 = rand.nextInt(20);   public String toString()   {     return i4 + "" + i5 + "";   }   public static void main(String[] args) {     FinalData data = new FinalData();     //data.test = new Test();     //data.VALUE_2++;     data.test2 = new Test();     for(int i=0; i<data.a.length; i++)     {       //a[i] = 9;     }     out.println(data);     out.println("data2");     out.println(new FinalData());     out.println(data);   } } 

一個被定義為final的對象只能指向唯一一個對象,不可以將它指向其他對象,但是一個對象本身的值確實可以改變的,那么為了使一個常量真正做到不可更改,可以將常量說明為static final. 如下例:

import static java.lang.System.out; import java.util.Random; public class FinalStaticData {   private static Random rand = new Random();   private final int a1 = rand.nextInt(10);   private static final int a2 = rand.nextInt(10);      public static void main(String[] args) {     FinalStaticData fdata = new FinalStaticData();//實例化一個對象     out.println("重新實例化對象調用a1的值:" + fdata.a1);     out.println("重新實例化對象調用a2的值:" + fdata.a2);       FinalStaticData fdata2 = new FinalStaticData();// 實例化新對象     out.println("重新實例化對象調用a1的值:" + fdata2.a1);     out.println("重新實例化對象調用a2的值:" + fdata2.a2);   } } 

重新實例化對象調用a1的值:9 
重新實例化對象調用a2的值:2 
重新實例化對象調用a1的值:1 
重新實例化對象調用a2的值:2 

總結:

定義為final常量不是恒定不變的,將隨機數賦予final的變量,可以做到每次運行程序時改變a1的值,但是a2被定義為static final形式,所以內存中為a2開辟了一個恒定的區域,當再次實例化一個FianlStaticData對象時,仍然指向a2這塊內存區域,所以a2的值保持不變。

技巧:

在JAVA中定義全局常量,通常使用public static final修飾,這樣的常量只能在定義時被賦值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲周县| 阿坝| 湄潭县| 澎湖县| 梓潼县| 彩票| 沈丘县| 海原县| 桃源县| 金秀| 南部县| 东乡县| 石河子市| 泸定县| 榆树市| 象州县| 甘南县| 玛曲县| 闵行区| 康定县| 专栏| 九台市| 无为县| 钟祥市| 武鸣县| 水城县| 高唐县| 政和县| 呼伦贝尔市| 乌拉特后旗| 乐东| 宁阳县| 泰顺县| 河津市| 稻城县| 海原县| 紫阳县| 玉树县| 开江县| 泸水县| 巩留县|