java中final潤飾符實例剖析。本站提示廣大學習愛好者:(java中final潤飾符實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是java中final潤飾符實例剖析正文
final潤飾符:
final潤飾成員變量必需有法式員顯示指定初始值。
類的Field:必需在靜態初始化塊中或聲明該Field時指定初始值。
實例Field:必需在非靜態初始塊中,聲明Field或許結構器中指定初始值。
final部分變量:必需由法式員顯示初始化。
final潤飾的根本變量和援用類型變量的差別?
final潤飾的根本變量:不克不及對根本變量從新賦值。
final潤飾的援用變量:只包管這個援用類型所援用的地址不會變,即
一向援用統一個對象,但這個對象完整可以產生轉變。
/**
*/
import java.util.*;
public class Demo5
{
public static void main(String[] args)
{
final B b = new B(22);
b.test();
//正當 轉變值,但還是指向統一個援用
b.setAge(20);
System.out.println(b.getAge());
// 不法
// b = null;
b.test2();
}
}
/**
fianl潤飾成員變量
*/
class A
{
//正當
final int a = 10;
//結構器或初始化化塊中指定初始值
final String str;
final int c;
final static double d;
{
str = "hello";
//不法
// a = 100;
}
static
{
d = 100;
}
// 結構器可對沒在初始化塊中指定的Field指定初始值
public A()
{
// 不法
// str = "ddd";
c = 1000;
}
public double changFinal()
{
// 不克不及再通俗辦法中為final指定初始值
// return d = 1000.90;
return 0;
}
}
/**
fianl潤飾數組 對象
*/
class B
{
private int age;
public B()
{
}
public B(int age)
{
this.age = age;
}
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return this.age;
}
public void test()
{
final int[] arr={23,434,56,898};
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
arr[2] = 200;
System.out.println(Arrays.toString(arr));
//上面對Arr從新賦值 不法
// arr = null;
}
/**
加深對final的懂得
*/
public void test2()
{
String str1 = "美妙將來";
//直接援用常量池中的"美妙將來"
String str2 = "美妙"+"將來";
//true
System.out.println(str1 == str2);
String s1 = "美妙";
String s2 = "將來";
String s3 = s1+s2;
//false s1 s2只是變量 在編譯時代不克不及肯定
//若想在編譯時代肯定 則用 final潤飾 s1 s2
System.out.println(str1 == s3);
}
}
小同伴們能否對java中final潤飾符有所懂得了呢,信任正文中曾經給年夜家說明的很清晰了,我這裡就不再煩瑣