final非靜態變數初始化

2021-08-31 15:43:31 字數 458 閱讀 7569

[size=medium]final變數可以在任何可以被始化的地方被始化,具體應該是建構函式之前或建構函式中,但只能被初始化一次.一旦被初始化後就不能再次賦

值(重新指向其它物件),作為成員變數一定要顯式初始化,而作為臨時變數則可以只定義不初始化(當然也不能引用)

即使是作為乙個類中的成員變數,也還可以在初始化塊中初始化,所以"其初始化可以在兩個地方,一是其定義處,

二是在建構函式中,兩者只能選其一"是錯誤的.

例如final string s;

初始化資料域的方法:

(1)構造器。

(2)宣告時賦值。

(3)初始化塊。(用{}括起來的區域) 初始化時首先執行初始化塊然後執行構造器主體。

初始化靜態資料域的方法:

(1)構造器。

(2)盛明詩賦值。

**(3)靜態初始化塊。

[/size]

靜態變數,非靜態變數和final變數

package com.founder.bg.quartz.job 7 在程式執行時的區別 例項變數屬於某個物件的屬性,必須建立了例項物件,8 其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某 9 個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,10 不用建...

靜態變數初始化順序

1.begin a a a a,from a的物件 a a,a.num01 0 a a,b.num02 0 a a,b.instance a null end a a begin a a a a,from a的物件 a a,a.num01 1 a a,b.num02 1 a a,b.instance...

Java中靜態變數和非靜態變數的初始化順序

先看下面的程式 package c05.net class bowl void f1 class cupboard static bowl b3 new bowl 3 class table table string a,int i public class order public static ...