static:靜態的
當new一個對象修改static修飾的值后,再new其他對象再調用這個值,將會是修改后的值。
static修飾的內容是屬于類的,是為了告訴別人static后面的是公共的,最好不要修改,修改后會影響其他人。
用法:是一個修飾符,用于修飾成員(成員函數和成員變量)。
注意:static修飾局部函數和局部變量是沒有意義的,因為方法中的內容當運行完后是無效的。靜態修飾的內容被對象所共享,當成員被靜態修飾后,就多了一種調用方式,就是被類名調用(使用時推薦用類名調用)
static的特點
1隨著類的加載而加載,隨著類的消失而消失,說明它的生命周期很長
2比對象先存在于內存中
3被所有對象所共享
4可以直接被類名所調用
靜態的使用注意;
1靜態方法只能訪問靜態成員
2非靜態方法既可以訪問靜態也可以訪問非靜態
3靜態方法中不可以定義this,super關鍵字
因為靜態優先于對象存在,所以靜態方法中不可以出現this
靜態有利有弊
利:對對象的共享數據進行單獨空間的存儲,節省內存,沒有必要每一個對象中存儲一份
可以直接被類名調用
弊:生命周期過長,訪問出現局限性(靜態雖好,只能訪問靜態)
什么時候定義靜態變量呢
當對象中出現共享數據時,該數據就要被靜態所修飾
對象中的特有數據要定義成非靜態存在于堆內存中
什么時候定義靜態函數呢
當功能內部沒有訪問到非靜態數據時,那么該功能可以定義成靜態的
一個類中會有一個空參數的構造函數
這個默認的構造函數和所屬類一致
如果類被public修飾,那么默認的構造函數也需public修飾
默認構造函數的權限隨著類的變化而變化
靜態的應用:
每一個應用程序中都有共性的內容,可以將這些功能封裝抽取,以便復用
新聞熱點
疑難解答