導航:首頁 > 編程語言 > java介面靜態變數

java介面靜態變數

發布時間:2023-11-16 12:04:08

java中靜態變數和靜態方法是用類來調動,還是用對象來調用,還是都行

Java中的靜態變數既可以用類調用也可以用對象調用,但Java中推薦用類名調用以區別實例方法或實例變數

② java中什麼方法可以定義靜態變數

java中什麼方法可以定義靜態變數
靜態變數
可以將靜態變數理解為類變數(與對象無關),而實例變數則屬於一個特定的對象。
靜態變數有兩種情況:
靜態變數是基本數據類型,這種情況下在類的外部不必創建該類的實例就可以直接使用
靜態變數是一個引用。這種情況比較特殊,主要問題是由於靜態變數是一個對象的引用,那麼必須初始化這個對象之後才能將引用指向它。因此如果要把一個引用定義成static的,就必須在定義的時候就對其對象進行初始化。

靜態方法
與類變數不同,方法(靜態方法與實例方法)在內存中只有一份,無論該類有多少個實例,都共用一個方法。
靜態方法與實例方法的不同主要有:
靜態方法可以直接使用,而實例方法必須在類實例化之後通過對象來調用。
在外部調用靜態方法時,可以使用「類名.方法名」或者「對象名.方法名」的形式。實例方法只能使用後面這種方式。
靜態方法只允許訪問靜態成員。而實例方法中可以訪問靜態成員和實例成員。
靜態方法中不能使用this(因為this是與實例相關的)。

③ JAVA介面類中不能用靜態變數

Java就是這么規定的
介面中不能有成員變數,一定要有隻能是final static類型的
你可以這樣定義:
final static int count = 0;
或者用抽象類,抽象類能有成員變數
abstract class abs{
static int a;
}

另外,以下我是從網上找來的,你可以看一下,對你理解介面跟抽象類有幫助:
聲明方法的存在而不去實現它的類叫虛擬類(abstract class).它用於創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況.不能創建abstract class的實例.但是可以聲明一個abstract class變數,將其指向其具體子類的一個實例.不能有抽象構造函數或抽象靜態方法.Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法.
介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面.

public interface A{
public void 方法名(參數名);
}
這是定義一個介面,介面里只能有方法的聲明,不能有方法體,成員變數只能是final static類型(final static int count),如果不寫,寫成int count,系統的確會默認成為final static int count,而你的那個是一個類實現了一個介面,在實現介面的那個類當然可以有成員變數跟方法體了

④ 請教大家關於JAVA中的靜態變數和靜態方法

在語法定義上的區別:靜態變數前要加static關鍵字,而實例變數前則不加。

在程序運行時的區別:實例變數屬於某個對象的屬性,必須創建了實例對象,其中的實例變數才會被分配空間,才能使用這個實例變數。靜態變數不屬於某個實例對象,而是屬於類,所以也稱為類變數,只要程序載入了類的位元組碼,不用創建任何實例對象,靜態變數就會被分配空間,靜態變數就可以被使用了。總之,實例變數必須創建對象後才可以通過這個對象來使用,靜態變數則可以直接使用類名來引用。

例如,對於下面的程序,無論創建多少個實例對象,永遠都只分配了一個staticVar變數,並且每創建一個實例對象,這個staticVar就會加1;但是,每創建一個實例對象,就會分配一個instanceVar,即可能分配多個instanceVar,並且每個instanceVar的值都只自加了1次。

public class VariantTest

{

public static int staticVar = 0;

public int instanceVar = 0;

public VariantTest()

{

staticVar++;

instanceVar++;

System.out.println("staticVar = "++staticVar ", instanceVar = " ++instanceVar);

}

}

文二

java類的成員變數有倆種

一種是被static關鍵字修飾的變數,叫類變數或者靜態變數

另一種沒有static修飾,為實例變數

類的靜態變數在內存中只有一個,java虛擬機在載入類的過程中為靜態變數分配內存,靜態變數位於方法區,被類的所有實例共享。靜態變數可以直接通過類名進行訪問,其生命周期取決於類的生命周期。

而實例變數取決於類的實例。每創建一個實例,java虛擬機就會為實例變數分配一次內存,實例變數位於堆區中,其生命周期取決於實例的生命周期。

public class Temp {

int t; //實例變數

public static void main(String args[]){

int t=1; //局部變數

System.out.println(t); //列印局部變數

Temp a= new Temp(); //創建實例

System.out.println(a.t); //通過實例訪問實例變數

}

}

結果為

1

0 (成員變數具有預設值 而局部變數則沒有)

代碼改為

public class Temp {

static int t; //類變數

public static void main(String args[]){

System.out.println(t); //列印類變數

int t=1; //局部變數

System.out.println(t); //列印局部變數

Temp a= new Temp(); //創建實例

System.out.println(a.t); //通過實例訪問實例變數

}

}

結果則為

0

1

0

⑤ java中靜態變數有什麼用途

靜態變數是全局變數,讓每個函數都可以使用,舉個例子,static double PI=3.14;
哪么在接下來的運算中無論那裡都可以直接調用PI,不用在次定義,當然這只是個小作用,在接下來的學習中,你會了解到,靜態代碼塊的重要作用,用初始化一些變數或者函數,static{},靜態代碼塊是在類載入的時候就被載入進內存中。你如果是剛開始學的,哪么你先記住第一個就可以了,在往後的學習中你就會慢慢了解到,當然我也是說了一點而已,你不用著急你不會,因為學java就是這樣的,一開始都不懂,老師怎麼說都不懂,看書也不懂,但是一旦學完了,就恍然大悟,啊原來以前的那些都是這樣的,因為java的連貫性非常的強,學習後面的知識的時候就會用到以前的知識,變數是個簡單的知識點,重要的是繼承封裝多態,這3大件。學的時候要認真啊。哪么我告訴你一個小秘密,什麼時候3大件才是學明白了呢,哪么就是你知道了自己從來沒見過人,也沒見過狗,我不是人,我是人中的一個對象,哪么你就大功告成了。希望你學習進步。謝謝!
學繼承多態那個地方的時候老有意思了,你期待把,我學的時候經常都是樂了一節課。不是貓叫就是狗叫的,要不就是貓睡覺狗睡覺,人吃,等等啦。哈哈!

⑥ JAVA中靜態變數的問題

靜態變數只能寫在類中而不能寫在方法中,因為靜態變數也稱為類變數,是整個類的所有實例對象都能引用的,而且僅在第一次生成這個類的對象時為這個靜態變數分配空間,故這個靜態變數對於該類的所有實例對象是公用的。對象如果把變數(非靜態變數)寫在類的某個方法中,實例對象中的該變數就是私有的了,對象相互間不能引用及修改該變數。

退一步說,所有寫在方法中的變數都是局部變數,都不能被方法外部調用。

⑦ java中靜態變數的問題

因為第一個你是在靜態方法中使用了非靜態的屬性!
記住:在java的靜態方法中,不能使用非靜態的屬性和方法!

靜態變數屬於類,不依賴於對象的載入而是依賴於類的載入。
也就是說,靜態的方法和屬性在類被載入的時候就會被相對應的聲明和初始化
!只要在程序中使用到了這個類,這個類的靜態屬性和方法就會被聲明和初始化!和這個類的對象無關!

⑧ java中的 靜態變數

其實靜態變數或者方法還是挺好理解的,不知道你在寫java應用程序時注意到沒有,main()函數前面都要有一句public static void main(){}可見main()函數也是靜態的。在程序中聲明的靜態變數和函數。都是和main()函數是同一級別的,可以直接通過類名調用,或者通過實例化對象,再通過對象調用。
普通的變數和函數就只能通過實例化變數調用了。

閱讀全文

與java介面靜態變數相關的資料

熱點內容
如何在編程貓代碼島20種樹 瀏覽:915
手機基礎信息存儲在哪個文件 瀏覽:726
如何查找手機備份文件 瀏覽:792
內存清理工具formac 瀏覽:323
iphone過濾騷擾電話 瀏覽:981
wap網路如何使用微信 瀏覽:699
手機迅雷應用盒子在哪個文件夾 瀏覽:351
windows8網路連接 瀏覽:442
怎麼快速增加qq群人數 瀏覽:919
錘子視頻播放器文件不存在 瀏覽:707
蘋果手機怎麼清理app緩存 瀏覽:682
花園戰爭2豪華升級包 瀏覽:517
電腦無法向u盤傳輸文件 瀏覽:823
bpn配置文件 瀏覽:932
501完美越獄工具 瀏覽:119
中間夾菜單裡面不能顯示壓縮文件 瀏覽:952
如何指導小學生參加編程比賽 瀏覽:275
物業的招標文件有哪些 瀏覽:452
保存游戲文件名非法或只讀 瀏覽:258
js怎麼做圖片時鍾 瀏覽:451

友情鏈接