學習內容:
一、final變量
1.設定為final的變量,其值不可被改變。
2.final定義的變量必須在聲明時對其進行賦值操作。
3.final可以修飾對象。被修飾為final的對象,只能恆定指向一個對象。
4.一個既是final又是static的字段只占一段不能改變的存儲空間。
5.定義final常量時需要用大寫字母命名,並且中間使用下划線連接,這是Java中的編碼規則。
下面通過一段代碼區分定義為final與定義為static、final的不同:
package final相關知識;
import java.util.Random;
public class FinalStaticData {
private static Random rand=new Random();//實例化一個Random類對象
private final int a1=rand.nextInt(10);//產生一個0~10的隨機數
private static final int a2=rand.nextInt(10);//產生一個0~10的隨機數
public static void main(String[] args) {
FinalStaticData data1=new FinalStaticData();
System.out.println("a1產生的隨機數為:"+data1.a1);
System.out.println("a2產生的隨機數為:"+data1.a2);
FinalStaticData data2=new FinalStaticData();
System.out.println("a1產生的隨機數為:"+data2.a1);
System.out.println("a2產生的隨機數為:"+data2.a2);
}
}
運算截圖:
由程序可見,每次重新實例化對象時定義為final的常量a1的值都會改變,而定義為static、final的常量a2的值不變,因為在內存中為a2開辟了一個恆定不變的區域。
二、final方法
1.定義為final的方法無法被重寫。
2.定義為final的方法執行效率更高。
3.一個被private修飾的方法隱式被指定為final類型。
三、final類
1.定義為final的類不能被繼承。
2.final類的語法:
final 類名{}
3.如果將某個類設置為final類型,其所有方法都被設置為final類型,但其成員變量可以自定義。
明天任務:內部類