更新時間:2020-10-29 17:24:10 來源:動力節點 瀏覽991次
雖然java編程是一門實操性的技術,但是理論知識對于學好java來說也是十分重要的。變量是是java零基礎的人在入門階段需要學習的重點內容,今天這篇文章帶大家來學習java靜態變量的相關知識,學習靜態變量是什么,有什么特點以及怎樣使用,一起來看下面的內容吧。
先來看java靜態變量是什么,靜態變量:內存中只有一份,Java虛擬機(JVM)只為靜態變量分配一次內存,在加載類的過程中完成靜態變量的內存分配。由于靜態變量屬于類,與類的實例無關,因而可以直接通過類名訪問這類變量。通過類名.屬性的方式訪問靜態變量。
與靜態變量相對應是靜態方法,靜態方法:方法前加static修飾符,表明該方法與某個具體實例無關,僅僅是該類的一個公共方法。通過類名.方法的方式訪問靜態方法。靜態變量和靜態方法都屬于靜態對象,那么java靜態對象有什么好處和優點呢?
(1)靜態對象的數據在全局是唯一的,一改都改。如果你想要處理的東西是整個程序中唯一的,弄成靜態是個好方法。 非靜態的東西你修改以后只是修改了他自己的數據,但是不會影響其他同類對象的數據;(2)引用方便。直接用 類名.靜態方法名或者類名,靜態變量名就可引用并且直接可以修改其屬性值,不用get和set方法;(3)保持數據的唯一性。此數據全局都是唯一的,修改他的任何一處地方,在程序所有使用到的地方都將會體現到這些數據的修改。有效減少多余的浪費。
使用java靜態變量的優點:不需要在進行bai實例化。靜態變量的值,直接賦新值即可,不需要參數傳遞,之后可以直接進行參數引用即可;靜態方法可以直接通過"類名.方法"的形式進行方法調用。通常方法被多次調用,并且方法中沒有動態方法引用的時候使用比較方便。
下面是一個靜態變量的例子,代碼如下:
class c1c {
private static int num = 0;
private static double pi = 3.14;
private double radius;
private int height;
public c1c(double r,int h)
{
radius = r;
height=h;
num++;
}
public void count()
{
System.out.print("創建了"+num+"個對象");
}
double area() {
return pi*radius*radius;
}
double volume() {
return area()*height;
}
}
public class cc{
public static void main(String[] args)
{
c1c volu1=new c1c(2.5,5);
volu1.count();
System.out.println("圓柱1的體積="+volu1.volume());
c1c volu2=new c1c(1.0,2);
volu2.count();
System.out.println("圓柱2的體積="+volu2.volume());
}
}
本例中聲明了一個靜態變量num用于記錄程序中共產生了多少個對象,因為對象創建時會自動調用構造方法,所以在構造方法中加入了“num++;”語句,這樣每創建一個對象就調用一次構造方法,從而每產生一個對象,num的值就會自動加1,此時,因為靜態變量是一個公共的存儲單元,所以類的任何一個對象去修改它時,都是在對同一個內存單元做操作。去掉聲明num的static后:private int num = 0。
可以看到num的值沒有變化,這是因為num成為實例變量后,對創建的不同對象來說,都有自己獨立的內存來保存它的值,且不與其他對象共享,因此若修改了volu1的num值,volu2的num并不受影響。
以上就是對java靜態變量相關知識的介紹,都是關于java靜態變量的基礎內容,所以希望大家認真學習,也希望上面的內容能幫助朋友們理解靜態變量,同時可以在java教程中學習java靜態變量的使用。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習