1. 靜態變量能夠通過靜態方法來訪問。實質上就是一個全局變量,當我們聲明一個對象時,該類所有的實例變量公用一個靜態變量。
2. 我們程序的任何地方,都可以用它而且可以不實例化它,在我們調用靜態變量的時候,它不會初始化到以前的值,比如初始值為1,經過調用后變成了2,那么下次調用的時候,初始值就變為了2。
3. 靜態變量是存儲在公共空間的,就是說所有的對象都可以直接引用,不需要創建對象再使用該方法。
4. 靜態類是static的,不需要實例化類對象即可訪問類中的方法,而非靜態類,必須有需要new一個類對象才可以訪問類中的方法。
5. 靜態方法優于對象存在。靜態方法在類加載的時候就會被調用,比如main方法就是一個特殊的靜態方法,作為程序的主入口,在加載類的時候就會被調用。
詳細:
static變量:被static修飾的叫做類變量或者靜態變量,沒有被static修飾的叫做實例變量,區別:JVM只為靜態變量分配一次內存,在加載類的過程中完成靜態的內存分配,可以用類名直接訪問。 對于實例變量,每對類創建一個實例對象,就會為實例變量分配一次內存,互不影響。
所以一般需要實現以下功能時使用靜態(1)在對象間共享值 (2)方便訪問變量時
static靜態方法:靜態方法可以直接通過調用,任何的實例也都可以調用,但是在方法中不能使用this和super關鍵字,且不能訪問不被static修飾的變量和方法(因為實例變量分別隸屬于各自的實例)。static方法獨立于任何實例,所以必須被實現。Static不可以為抽象的
(!!!!)一般為了方便,如果A類的某一個方法需要被其他類調用,則將此方法定義為靜態,直接用A.方法名 調用。(!!!!)
附:static和final修飾變量的時候,可簡單理解為“全局常量”,即初始給定值之后不可再改動。
新聞熱點
疑難解答