程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中final變量應用總結

Java中final變量應用總結

編輯:關於JAVA

Java中final變量應用總結。本站提示廣大學習愛好者:(Java中final變量應用總結)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中final變量應用總結正文


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潤飾,如許的常量只能在界說時被賦值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved