2021.11.20 final在類中,方法中,變量中的作用


一:final在類中,方法中,變量中的作用

final 關鍵字表示對象是最終形態的,對象是不可改變的意思。final 應用於類、方法和變量時意義是不同的,但本質是一樣的:final 表示不可改變。
final 用在變量的前面表示變量的值不可以改變,此時該變量可以被稱為常量;final 用在方法的前面表示方法不可以被重寫;final 用在類的前面表示類不可以被繼承,即該類是最終形態,如常見的 java.lang.String 類。

 

二:static與finall在一起的作用

static和final的意義是不同的,
static修飾的時候代表對象是靜態的,而final修飾的時候代表對象只能賦值一次,
他們連用的時候是因為定義的那個對象既要它是靜態的,也要求它的值不能再被修改。
舉例說明:
static int a=1;
static final b=1;
這里a和b的區別在於,a在程序里可以被重新賦值為2或3或等等的整數,而b在程序里不能被重新賦值,b永遠都為1,也就是說b是一個常量。
final int c=1;
static final b=1;
這里c和b的區別在於,b存放在靜態空間,不會在程序運行時被釋放,它永遠占着內存直到程序終止,而c在程序用完它而不會再用到它的時候就會被自動釋放,不再占用內存。

當一個常數或字符串我們需要在程序里反復反復使用的時候,我們就可以把它定義為static final,這樣內存就不用重復的申請和釋放空間。

三:static

通常情況下,成員變量、方法都隸屬於對象層級,也就是說每個對象都擁有獨立的一份,若所有對象的某個特征都是一樣的,則會造成內存空間的浪費,為了提高內存空間的利用率可以使用static關鍵字修飾成員變量、方法,表示靜態的概念。此時該成員變量由對象層級提升為類層級,隨着類的加載而准備就緒,被所有對象共享,與對象是否創建無關。
使用方式:
(1)使用類名.靜態成員的方式進行訪問。
(2)對於非靜態的成員方法來說,既能訪問非靜態的成員,也能訪問靜態的成員。
(3)對於靜態成員方法來說,只能訪問靜態成員,不能訪問非靜態成員。
(4)在Java語言中static關鍵字和final關鍵字很少單獨修飾成員變量,通常都是采用public static final 共同修飾成員變量來表示常量的概念,該數值必須指定而且不能更改。通常的命名規范是:所有字母都要大寫,不同單詞之間采用下划線連接。

(3)對於靜態成員方法來說,只能訪問靜態成員,不能訪問非靜態成員。:這個其實就是我們加載類以后,這個類不一定創建對象,只有對象才能調用非靜態的方法,所以可能會出錯;

 

四:JAVA中,非靜態方法可以調用靜態成員變量嗎?

可以的,非靜態方法可以調用靜態的成員變量,但是靜態方法不能調用非靜態方法的成員變量

 

反正就是靜態的不可以調用非靜態的,非靜態的可以調用靜態的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM