當前位置:首頁 » 編程語言 » javastatic變數

javastatic變數

發布時間: 2023-03-29 04:41:24

java中static是什麼意思能不能通俗的講下,讓我這個菜鳥好理解一點

static英文是靜態的意思,所以它在java中也是這么用的,是一個修飾詞,在定義數據前面加上它是指這個數據是靜態不變的,在方法明加上它是指這個方法是靜態的。一般就是這些用處

② java static變數可以修改嗎

java static變數可以修改。凡是變數,它的值就可以被修改。

③ Java中static的作用

1.static 成員變數

在 Java 中還支持用 static 修飾的內部類,稱為靜態內部類。靜態成員內部類的特點主要是它本身是類相關的內部類,所以它可以不依賴於外部類實例而被實例化。靜態內部類不能訪問其外部類的實例成員(包括普通的成員變數和方法),只能訪問外部類的類成員(包括靜態成員變數和靜態方法)。即使是靜態內部類的實例方法(非靜態成員方法)也不能訪問其外部類的實例成員。

④ java中的static如何使用

有時你希望定義一個類成員,使它的使用完全獨立於該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變數都聲明為static。static成員的最常見的例子是main( )。因為在程序開始執行時必須調用main(),所以它被聲明為static。聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共用同一個static變數。
聲明為static的方法有以下幾條限制:
· 它們僅能調用其他的static方法。
· 它們只能訪問static數據。
· 它們不能以任何方式引用this或super(關鍵字super與繼承有關,在下一章中描述)。
如果你需要通過計算來初始化你的static變數,你可以聲明一個static塊,Static塊僅在該類被載入時執行一次。
下面的例子顯示的類有一個static方法,一些static變數,以及一個static 初始化塊:
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);
}

static {
System.out.println("Static block initialized.");
b = a * 4;
}

public static void main(String args[]) {
meth(42);
}
}
一旦UseStatic類被裝載,所有的static語句被運行。首先,a被設置為3,接著static塊執行(列印一條消息),最後,b被初始化為a*4或12。然後調用main(),main()調用meth(),把值42傳遞給x。3個println ( )語句引用兩個static變數a和b,以及局部變數x 。
注意:在一個static方法中引用任何實例變數都是非法的。
下面是該程序的輸出:
Static block initialized.
x = 42
a = 3
b = 12
在定義它們的類的外面,static方法和變數能獨立於任何對象而被使用。這樣,你只要在類的名字後面加點號運算符即可。例如,如果你希望從類外面調用一個static方法,你可以使用下面通用的格式:
classname.method( )
這里,classname 是類的名字,在該類中定義static方法。可以看到,這種格式與通過對象引用變數調用非static方法的格式類似。一static變數可以以同樣的格式來訪問——類名加點號運算符。這就是Java如何實現全局功能和全局變數的一個控製版本。
下面是一個例子。在main()中,static方法callme()和static變數b在它們的類之外被訪問。
class StaticDemo {
static int a = 42;
static int b = 99;
static void callme() {
System.out.println("a = " + a);
}
}
class StaticByName {
public static void main(String args[]) {
StaticDemo.callme();
System.out.println("b = " + StaticDemo.b);
}
}
下面是該程序的輸出:
a = 42
b = 99

static成員是不能被其所在class創建的實例訪問的。

如果不加static修飾的成員是對象成員,也就是歸每個對象所有的。

加static修飾的成員是類成員,就是可以由一個類直接調用,為所有對象共有的

熱點內容
新建文件夾命令按鈕 發布:2024-11-02 22:32:09 瀏覽:571
給首付解壓 發布:2024-11-02 22:24:01 瀏覽:52
活春文件夾 發布:2024-11-02 22:22:18 瀏覽:144
pythonlist參數傳遞 發布:2024-11-02 22:18:57 瀏覽:598
林肯冒險家買哪個配置人多 發布:2024-11-02 22:14:34 瀏覽:543
馬鈴薯存儲 發布:2024-11-02 22:09:21 瀏覽:363
android的title居中 發布:2024-11-02 21:59:53 瀏覽:876
orchard源碼 發布:2024-11-02 21:51:20 瀏覽:940
ntp伺服器地址修改 發布:2024-11-02 21:31:46 瀏覽:818
c打開文件夾選中文件 發布:2024-11-02 21:31:12 瀏覽:601