更新時間:2020-10-29 17:24:10 來源:動力節(jié)點 瀏覽982次
雖然java編程是一門實操性的技術(shù),但是理論知識對于學(xué)好java來說也是十分重要的。變量是是java零基礎(chǔ)的人在入門階段需要學(xué)習(xí)的重點內(nèi)容,今天這篇文章帶大家來學(xué)習(xí)java靜態(tài)變量的相關(guān)知識,學(xué)習(xí)靜態(tài)變量是什么,有什么特點以及怎樣使用,一起來看下面的內(nèi)容吧。
先來看java靜態(tài)變量是什么,靜態(tài)變量:內(nèi)存中只有一份,Java虛擬機(JVM)只為靜態(tài)變量分配一次內(nèi)存,在加載類的過程中完成靜態(tài)變量的內(nèi)存分配。由于靜態(tài)變量屬于類,與類的實例無關(guān),因而可以直接通過類名訪問這類變量。通過類名.屬性的方式訪問靜態(tài)變量。
與靜態(tài)變量相對應(yīng)是靜態(tài)方法,靜態(tài)方法:方法前加static修飾符,表明該方法與某個具體實例無關(guān),僅僅是該類的一個公共方法。通過類名.方法的方式訪問靜態(tài)方法。靜態(tài)變量和靜態(tài)方法都屬于靜態(tài)對象,那么java靜態(tài)對象有什么好處和優(yōu)點呢?
(1)靜態(tài)對象的數(shù)據(jù)在全局是唯一的,一改都改。如果你想要處理的東西是整個程序中唯一的,弄成靜態(tài)是個好方法。 非靜態(tài)的東西你修改以后只是修改了他自己的數(shù)據(jù),但是不會影響其他同類對象的數(shù)據(jù);(2)引用方便。直接用 類名.靜態(tài)方法名或者類名,靜態(tài)變量名就可引用并且直接可以修改其屬性值,不用get和set方法;(3)保持數(shù)據(jù)的唯一性。此數(shù)據(jù)全局都是唯一的,修改他的任何一處地方,在程序所有使用到的地方都將會體現(xiàn)到這些數(shù)據(jù)的修改。有效減少多余的浪費。
使用java靜態(tài)變量的優(yōu)點:不需要在進行bai實例化。靜態(tài)變量的值,直接賦新值即可,不需要參數(shù)傳遞,之后可以直接進行參數(shù)引用即可;靜態(tài)方法可以直接通過"類名.方法"的形式進行方法調(diào)用。通常方法被多次調(diào)用,并且方法中沒有動態(tài)方法引用的時候使用比較方便。
下面是一個靜態(tài)變量的例子,代碼如下:
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("創(chuàng)建了"+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());
}
}
本例中聲明了一個靜態(tài)變量num用于記錄程序中共產(chǎn)生了多少個對象,因為對象創(chuàng)建時會自動調(diào)用構(gòu)造方法,所以在構(gòu)造方法中加入了“num++;”語句,這樣每創(chuàng)建一個對象就調(diào)用一次構(gòu)造方法,從而每產(chǎn)生一個對象,num的值就會自動加1,此時,因為靜態(tài)變量是一個公共的存儲單元,所以類的任何一個對象去修改它時,都是在對同一個內(nèi)存單元做操作。去掉聲明num的static后:private int num = 0。
可以看到num的值沒有變化,這是因為num成為實例變量后,對創(chuàng)建的不同對象來說,都有自己獨立的內(nèi)存來保存它的值,且不與其他對象共享,因此若修改了volu1的num值,volu2的num并不受影響。
以上就是對java靜態(tài)變量相關(guān)知識的介紹,都是關(guān)于java靜態(tài)變量的基礎(chǔ)內(nèi)容,所以希望大家認真學(xué)習(xí),也希望上面的內(nèi)容能幫助朋友們理解靜態(tài)變量,同時可以在java教程中學(xué)習(xí)java靜態(tài)變量的使用。
初級 202925
初級 203221
初級 202629
初級 203743