static 修飾方法
1、static修飾的方法被稱之為靜態方法也叫作類方法,加static的方法,可以通過類名直接訪問,也可以通過對象名訪問,而不加static只能通過對象名訪問,加了static的方法,不能再內部寫this,因為直接用類名點方法的時候,沒有當前對象
2、加了static的方法,不能再方法內部訪問非static的屬性和行為;
原因:1、在靜態方法的內部無法確認非static的內容屬於哪個對象,它是通過類名調用,這時沒有對象----這就相當於工具類
2、static修飾的方法,在類加載的時候是被首先加載的,然后加載非static內容,所以加載static時 是不知道非static內容的
總結:只有調用的時候無需考慮對象時,才定義為static---工具類的工具方法,可以被定義為static方法
工具類:沒有產生對象的必要,只要實現某個功能即可,哪個對象完成的都沒有影響,比如:分頁,轉換時間,連接數據庫等
工具方法:該方法在完成功能的時候,不會對對象的數據產生任何影響
凡是用static修飾的都有量大共性:
1、該內容與對象無關,只與類有關;
2、該內容總會在類加載器有特殊操作
注:static不能用來修飾構造方法,因為static修飾的是與對象無關的內容,而構造確實生成對象的五大方法之一
初始化塊--------{
在這個塊中可以書寫任何語句
}
1、這是一個沒有方法名、參數列表、返回類型的方法體
2、在這個塊中可以書寫任何語句,它在產生對象的時候自動被調用,它是用來美new出一個對象,就用來執行初始化的,又被稱之為實例初始化塊,這是與構造相重疊的,寫在初始化塊中的代碼都可以寫在構造方法中;但是他的執行順序是先執行初始化塊在執行構造
Static{
}----靜態初始化塊
1、與對象無關,滿足static的特征,一個類只執行一次;
2、執行的時機是加載的時候
總結:可以再靜態初始化塊中書寫一些運行前的准備工作,只運行一次,沒有別的可以替代,可以節約運行時間和運行速度;
當調用者產生一個對象的時候
1、在堆中划分對象的空間;
2、在空間划分屬性
3、執行實例初始化塊
4、執行屬性的賦值;
5、執行構造方法當中我們書寫好的代碼;