1. 程式人生 > 其它 >Java的常量及final修飾符

Java的常量及final修飾符

Java的常量及final修飾符

常量

  • 常量(Constant):初始化(initialize)後不能再改變的值!不會變動的值。
  • 常量可以理解為一種特殊的變數,它的值被設定後,在程式執行過程中不允許被改變。
    • final 常量名 = 值;
    • final double PI = 3.14;
  • 常用名一般使用大寫字元。
package com.cnblogs;

public class MyTest {
	//常量	修飾符 常量型別 常量名 = 常量值
	final double ADC = 500.0;
	final static double PI = 3.14;
	public static void main(String args[]) {
		//注意有無static的區別
		MyTest qi = new MyTest();
		System.out.println(qi.ADC);//500.0
		System.out.println(PI);//3.14
	}
}

final修飾符

  • final可以修飾類,方法,成員變數,區域性變數。
  • final修飾類,那麼這個類將不能繼承,也就是太監類,有爹沒兒。例如String類就是一個不可改變的類。特別提醒,final修飾的類,其屬性和方法不是預設final修飾的。
  • final修飾類 或 方法的時候,不能與abstract修飾詞同時使用,編譯器會報錯。因為final修飾的是不可改變,而abstract修飾的方法或者類。是希望被繼承,覆蓋重寫。
  • final修飾成員變數時,需要注意,初始化,賦值。因為final修飾後的成員變數,系統不會給他預設賦值。也就是說 final string str;系統不會給他預設值為null。 並且編譯器會報錯。這個時候給str賦值有兩種方法,一種是直接賦值,一種是在構造器裡面進行賦值。
  • final修飾,區域性變數的時候,對於基本型別而言,不可改變,引用地址和資料都是不可可變。在區域性變數裡,對於引用型別而言,引用地址不可改變,但其內容可以改變。
package com.cnblogs;

public class MyTest {
	//final
	String name;
	public MyTest(String string) {
		name = string;
	}
	
	public static void main(String args[]) {
		//final 修飾區域性變數(基本型別)
		final int a = 15;
		System.out.println(a);
		//final 修飾區域性變數(引用型別)
		final MyTest stu = new MyTest("akl");
		System.out.println(stu.name);//akl
		stu.name = "qi";
		System.out.println(stu.name);//qi
	}
}