新聞中心
一、static關(guān)鍵字

創(chuàng)新互聯(lián)專注于祁連企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。祁連網(wǎng)站建設(shè)公司,為祁連等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
使用static修飾的變量和方法分別稱為類(lèi)變量(或稱靜態(tài)變量)和類(lèi)方法(或稱靜態(tài)方法),沒(méi)有使用static修飾的變量和方法分別稱為實(shí)例變量和實(shí)例方法。
二、靜態(tài)變量
1.什么是靜態(tài)變量
使用static關(guān)鍵字修飾成員變量,這個(gè)變量叫做靜態(tài)變量。
2.例如多個(gè)圓形對(duì)象,那每個(gè)圓形對(duì)象都有自己的半徑(radius)和圓周率(PI),因?yàn)閳A周率是一個(gè)固定的常數(shù)3.141596,不用每個(gè)圓形對(duì)象各自擁有。圓周率(PI)作為共享的,每個(gè)圓形對(duì)象的半徑可能是不一樣的。
3.如何使用靜態(tài)變量
例如:
- //圓形類(lè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)建第一個(gè)圓形對(duì)象
- Ball b2=new Ball();//創(chuàng)建第二個(gè)圓形對(duì)象
- Ball.PI=3.141596;//靜態(tài)變量賦值
- b1.radius=5;//給第一個(gè)圓形的半徑賦值
- b2.radius=8;//給第一個(gè)圓形的半徑賦值
- System.out.println("第一個(gè)圓形對(duì)象的圓周率:"+b1.PI+" "+"半徑為:"+b1.radius);//打印第一個(gè)圓形的圓周率和半徑
- System.out.println("第二個(gè)圓形對(duì)象的圓周率:"+b2.PI+" "+"半徑為:"+b2.radius);//打印第二個(gè)圓形的圓周率和半徑
- }
- }
輸出的結(jié)果是:
第一個(gè)圓形對(duì)象的圓周率:3.141956 半徑為:5.0
第二個(gè)圓形對(duì)象的圓周率:3.141956 半徑為:8.0
上面的代碼中,在Ball類(lèi)中定義了一個(gè)靜態(tài)變量PI,用來(lái)表示圓周率它是作為所有實(shí)例的所共享,因?yàn)檫@個(gè)圓周率(PI)是靜態(tài)變量可以直接使用Ball.PI的方式調(diào)用,也可以使用實(shí)例化對(duì)象調(diào)用,b1.PI。第一個(gè)圓形對(duì)象和第二個(gè)圓形對(duì)象的PI屬性均為3.141596。
三、靜態(tài)方法
1.什么是靜態(tài)方法
靜態(tài)變量和方法可以在不創(chuàng)建對(duì)象的情況下進(jìn)行訪問(wèn)。靜態(tài)方法在類(lèi)的定義方法前面加static就叫做靜態(tài)方法。
2.靜態(tài)方法的訪問(wèn)格式同靜態(tài)變量一樣
- 類(lè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)建一個(gè)圓的對(duì)象
- System.out.print(Ball01.toRadius(100));//調(diào)用對(duì)象的靜態(tài)方法
- }
- }
輸出的結(jié)果是:
- 1.745331111111111
在上面代碼中,在Ball01類(lèi)定義了一個(gè)靜態(tài)的方法toRadius()角度轉(zhuǎn)徑度,通過(guò)對(duì)象實(shí)例化調(diào)用對(duì)象的靜態(tài)方法。一個(gè)靜態(tài)方法只能訪問(wèn)static修飾的成員,因?yàn)闆](méi)有被static修飾的成員首先需要?jiǎng)?chuàng)建對(duì)象才能訪問(wèn),而在靜態(tài)方法調(diào)用可以不用創(chuàng)建對(duì)象。
四、靜態(tài)代碼塊
1.什么是靜態(tài)代碼塊
靜態(tài)代碼塊是使用一個(gè)大括號(hào){}包圍很多行的代碼,并用static關(guān)鍵字修飾的代碼。
2.隨著類(lèi)的加載而執(zhí)行,而且只執(zhí)行一次。一般是使用靜態(tài)代碼塊來(lái)對(duì)類(lèi)成員變量進(jìn)行初始化。
3.靜態(tài)代碼塊和非靜態(tài)代碼塊的寫(xiě)法
靜態(tài)代碼塊:
- 靜態(tài)代碼塊:
- static{
- }
- 非靜態(tài)代碼塊:
- {
- }
4.怎么使用靜態(tài)代碼塊
例如:
- class Person3{
- static String name;
- //靜態(tài)代碼塊
- static{
- name="李華";
- System.out.println("Person3類(lèi)的靜態(tài)代碼執(zhí)行...");
- }
- }
- public class test {
- //靜態(tài)代碼塊
- static{
- System.out.println("測(cè)試類(lèi)的靜態(tài)代碼執(zhí)行...");
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Person3 p1=new Person3();//創(chuàng)建第一個(gè)Person3對(duì)象
- Person3 p2=new Person3();//創(chuàng)建第二個(gè)Person3對(duì)象
- }
- }
運(yùn)行的結(jié)果是:
- 測(cè)試類(lèi)的靜態(tài)代碼執(zhí)行...
- Person3類(lèi)的靜態(tài)代碼執(zhí)行...
我們從運(yùn)行的結(jié)果可以看出,兩個(gè)靜態(tài)代碼塊都被執(zhí)行。首先是加載類(lèi)test,在加載類(lèi)的同時(shí)加載靜態(tài)代碼塊,然后執(zhí)行主程序main()。在main方法中創(chuàng)建兩個(gè)Person3對(duì)象,兩次實(shí)例化對(duì)象后,靜態(tài)代碼只執(zhí)行一次,就說(shuō)明了隨著類(lèi)的加載而執(zhí)行,而且只執(zhí)行一次。
五、總結(jié)
本文主要介紹了static關(guān)鍵字、靜態(tài)變量、靜態(tài)方法、靜態(tài)代碼塊。
使用static修飾的變量和方法分別稱為類(lèi)變量和類(lèi)方法,沒(méi)有使用static修飾的變量和方法分別稱為實(shí)例變量和實(shí)例方法。
靜態(tài)變量是使用static關(guān)鍵字修飾成員變量,如何使用靜態(tài)變量案例理解這個(gè)用法。靜態(tài)方法是在類(lèi)的定義方法前面加static,通過(guò)一個(gè)怎么去使用靜態(tài)方法案例幫助理解。
靜態(tài)代碼塊是使用一個(gè)大括號(hào){}包圍很多行的代碼,并用static關(guān)鍵字修飾的代碼。希望通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!
本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流公眾號(hào)。
分享標(biāo)題:一篇文章帶你了解Java中的static關(guān)鍵字和靜態(tài)變量、靜態(tài)方法
新聞來(lái)源:http://fisionsoft.com.cn/article/djppcoj.html


咨詢
建站咨詢
