十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇內(nèi)容介紹了“Java中的static關(guān)鍵字和靜態(tài)變量、靜態(tài)方法”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供郟縣網(wǎng)站建設(shè)、郟縣做網(wǎng)站、郟縣網(wǎng)站設(shè)計、郟縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、郟縣企業(yè)網(wǎng)站模板建站服務(wù),十多年郟縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
一、static關(guān)鍵字
使用static修飾的變量和方法分別稱為類變量(或稱靜態(tài)變量)和類方法(或稱靜態(tài)方法),沒有使用static修飾的變量和方法分別稱為實例變量和實例方法。
二、靜態(tài)變量
1.什么是靜態(tài)變量
使用static關(guān)鍵字修飾成員變量,這個變量叫做靜態(tài)變量。
2.例如多個圓形對象,那每個圓形對象都有自己的半徑(radius)和圓周率(PI),因為圓周率是一個固定的常數(shù)3.141596,不用每個圓形對象各自擁有。圓周率(PI)作為共享的,每個圓形對象的半徑可能是不一樣的。
3.如何使用靜態(tài)變量
例如:
//圓形類 public class Ball { public double radius;//圓的半徑 static double PI=3.141956;//圓周率 public static void main(String[] args) { // TODO Auto-generated method stub Ball b1=new Ball();//創(chuàng)建第一個圓形對象 Ball b2=new Ball();//創(chuàng)建第二個圓形對象 Ball.PI=3.141596;//靜態(tài)變量賦值 b1.radius=5;//給第一個圓形的半徑賦值 b2.radius=8;//給第一個圓形的半徑賦值 System.out.println("第一個圓形對象的圓周率:"+b1.PI+" "+"半徑為:"+b1.radius);//打印第一個圓形的圓周率和半徑 System.out.println("第二個圓形對象的圓周率:"+b2.PI+" "+"半徑為:"+b2.radius);//打印第二個圓形的圓周率和半徑 } }
輸出的結(jié)果是:
第一個圓形對象的圓周率:3.141956 半徑為:5.0
第二個圓形對象的圓周率:3.141956 半徑為:8.0
上面的代碼中,在Ball類中定義了一個靜態(tài)變量PI,用來表示圓周率它是作為所有實例的所共享,因為這個圓周率(PI)是靜態(tài)變量可以直接使用Ball.PI的方式調(diào)用,也可以使用實例化對象調(diào)用,b1.PI。第一個圓形對象和第二個圓形對象的PI屬性均為3.141596。
三、靜態(tài)方法
1.什么是靜態(tài)方法
靜態(tài)變量和方法可以在不創(chuàng)建對象的情況下進行訪問。靜態(tài)方法在類的定義方法前面加static就叫做靜態(tài)方法。
2.靜態(tài)方法的訪問格式同靜態(tài)變量一樣
類名.方法名
3.怎么使用靜態(tài)方法
public class Ball01 { public double radius;//圓的半徑 public static double PI=3.141596;//圓周率 //角度轉(zhuǎn)徑度 public static double toRadius(double angdeg){ return angdeg*(Ball01.PI/180); } public static void main(String[] args) { // TODO Auto-generated method stub //Ball01 b1=new Ball01();//創(chuàng)建一個圓的對象 System.out.print(Ball01.toRadius(100));//調(diào)用對象的靜態(tài)方法 } }
輸出的結(jié)果是:
1.745331111111111
在上面代碼中,在Ball01類定義了一個靜態(tài)的方法toRadius()角度轉(zhuǎn)徑度,通過對象實例化調(diào)用對象的靜態(tài)方法。一個靜態(tài)方法只能訪問static修飾的成員,因為沒有被static修飾的成員首先需要創(chuàng)建對象才能訪問,而在靜態(tài)方法調(diào)用可以不用創(chuàng)建對象。
四、靜態(tài)代碼塊
1.什么是靜態(tài)代碼塊
靜態(tài)代碼塊是使用一個大括號{}包圍很多行的代碼,并用static關(guān)鍵字修飾的代碼。
2.隨著類的加載而執(zhí)行,而且只執(zhí)行一次。一般是使用靜態(tài)代碼塊來對類成員變量進行初始化。
3.靜態(tài)代碼塊和非靜態(tài)代碼塊的寫法
靜態(tài)代碼塊:
靜態(tài)代碼塊: static{ } 非靜態(tài)代碼塊: { }
4.怎么使用靜態(tài)代碼塊
例如:
class Person3{ static String name; //靜態(tài)代碼塊 static{ name="李華"; System.out.println("Person3類的靜態(tài)代碼執(zhí)行..."); } } public class test { //靜態(tài)代碼塊 static{ System.out.println("測試類的靜態(tài)代碼執(zhí)行..."); } public static void main(String[] args) { // TODO Auto-generated method stub Person3 p1=new Person3();//創(chuàng)建第一個Person3對象 Person3 p2=new Person3();//創(chuàng)建第二個Person3對象 } }
運行的結(jié)果是:
測試類的靜態(tài)代碼執(zhí)行...
Person3類的靜態(tài)代碼執(zhí)行...
我們從運行的結(jié)果可以看出,兩個靜態(tài)代碼塊都被執(zhí)行。首先是加載類test,在加載類的同時加載靜態(tài)代碼塊,然后執(zhí)行主程序main()。在main方法中創(chuàng)建兩個Person3對象,兩次實例化對象后,靜態(tài)代碼只執(zhí)行一次,就說明了隨著類的加載而執(zhí)行,而且只執(zhí)行一次。
“Java中的static關(guān)鍵字和靜態(tài)變量、靜態(tài)方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!