Ⅰ java中static的用法
static可以修飾變數(屬性)、方法、代碼塊和內部類
static屬性:屬於這個類所有,即由該類創建的所有對象共享同一個static屬性。可以對象創建後通過對象名.屬性名和類名.屬性名兩種方式來訪問。也可以在沒有創建任何對象之前通過類名.屬性名的方式來訪問。
static方法:也可以通過對象名.方法名和類名.方法名兩種方式來訪問
static代碼塊:當類被第一次使用時(可能是調用static屬性和方法,或者創建其對象)執行靜態代碼塊,且只被執行一次,主要作用是實現static屬性的初始化。
static內部類:屬於整個外部類,而不是屬於外部類的每個對象。不能訪問外部類的非靜態成員(變數或者方法),.可以訪問外部類的靜態成員
Ⅱ Java中的靜態方法是什麼
靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。
靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。
我們之前一直寫的mian方法仔細看看,它就是一個靜態方法,靜態方法使用如下:
Ⅲ java中什麼是靜態方法
若類的方法前加了static關鍵字,則該方法稱為靜態方法,反之為實例方法。靜態方法為類所有,可以通過對象來使用,也可以通過類來使用。但一般提倡通過類名來使用,因為靜態方法只要定義了類,不必建立類的實例就可使用。靜態方法只能調用靜態變數。
Ⅳ java中static怎麼用
static
屬於全局,也就是類的屬性
和方法,換句話說
一個類,不管有多少個實例,卻只有一個全局變數
class
B
{static
int
a=0;}
B
b1=new
B();..................;B
bn=new
B();
b1~bn
都是類B的實例,每個實例都共享
變數a,a是全局變數,屬於類B的屬性,每個實例都能引用變數a,
加入執行b1.a=1;後
那麼b2.a,b3.a,b4.a......bn.a
都等於1了,
static
方法也是類似的
需要注意的是
靜態屬性和方法屬於類方法,載入類後,就已經存在靜態屬性和方法,實例是需要用new構造出來後
才會有引用
根據先後順序,就有以下兩條規則
1、非靜態的方法可以調用靜態的或者非靜態的屬性和方法;
2、靜態的方法不可以調用非靜態的屬性和方法,因為非靜態的還不一定存在,只能先構造出來後,再通過實例引用
例如
在main方法中
可以直接調用static
的方法,調用非static方法
需要先構造出類的實例,通過實例才能調用方法
Ⅳ java中static是什麼意思,該怎麼用
就是靜態。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變數都聲明為static。static 成員的最常見的例子是main( ) 。因為在程序開始執行時必須調用main() ,所以它被聲明為static。
聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共同擁有一個static變數。聲明為static的方法有以下幾條限制:
· 它們僅能調用其他的static 方法。
· 它們只能訪問static數據。
· 它們不能以任何方式引用this 或super(關鍵字super 與繼承有關)。
舉例
如果你需要通過計算來初始化你的static變數,你可以聲明一個static塊,Static 塊僅在該類被載入時執行一次。下面的例子顯示的類有一個static方法,一些static變數,以及一個static 初始化塊:
// Demonstrate static variables,methods,and blocks.
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
Ⅵ Java中static方法和普通方法的區別
static方法就是靜態方法。
靜態方法是類方法,類名即可引用。
普通方法是對象方法,需要實例化對象才可以引用
Ⅶ Java中static的作用
1.static 成員變數
在 Java 中還支持用 static 修飾的內部類,稱為靜態內部類。靜態成員內部類的特點主要是它本身是類相關的內部類,所以它可以不依賴於外部類實例而被實例化。靜態內部類不能訪問其外部類的實例成員(包括普通的成員變數和方法),只能訪問外部類的類成員(包括靜態成員變數和靜態方法)。即使是靜態內部類的實例方法(非靜態成員方法)也不能訪問其外部類的實例成員。
Ⅷ 請問java語言中的static的用法
1)static方法
static方法一般稱作靜態方法,由於靜態方法不依賴於任何對象就可以進行訪問,因此對於靜態方法來說,是沒有this的,因為它不依附於任何對象,既然都沒有對象,就談不上this了。並且由於這個特性,在靜態方法中不能訪問類的非靜態成員變數和非靜態成員方法,因為非靜態成員方法/變數都是必須依賴具體的對象才能夠被調用。
2)static變數
static變數也稱作靜態變數,靜態變數和非靜態變數的區別是:靜態變數被所有的對象所共享,在內存中只有一個副本,它當且僅當在類初次載入時會被初始化。而非靜態變數是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。
3)static代碼塊
static關鍵字還有一個比較關鍵的作用就是 用來形成靜態代碼塊以優化程序性能。static塊可以置於類中的任何地方,類中可以有多個static塊。在類初次被載入的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。
Ⅸ java中static關鍵字的意義
1. static關鍵字 : 靜態的意思。可以修飾成員變數和成員方法。
2. static關鍵字的特點
A : 隨著類的載入而載入
B : 優先於對象存在
C : 被類的所有對象共享
這其實也是我們判斷該不該使用靜態的依據。
同一個班級的學生應該共用同一個班級編號。
飲水機 (用靜態修飾)
水杯 (不能用靜態修飾)
D : 可以通過類名調用
既可以通過對象名調用,也可以通過類名調用,建議通過類名調用。
3. static關鍵字的注意事項
A : 在靜態方法中沒有this關鍵字,如何理解呢 ?
靜態是隨著類的載入而載入,this是隨著對象的創建而存在。
靜態比對象先存在。
B : 靜態只能訪問靜態。
靜態方法只能訪問靜態的成員變數。
靜態方法只能訪問靜態的成員方法。
非靜態方法可以訪問靜態和非晶態的成員變數。
非靜態方法可以訪問靜態和非晶態的成員方法。
4. 靜態變數和成員變數的區別
A : 所屬不同
靜態變數:屬於類,類變數
成員變數:屬於對象,對象變數,實例變數
B : 內存位置不同
靜態變數:方法區的靜態區
成員變數:堆內存
C : 生命周期不同
靜態變數:靜態變數是隨著類的載入而載入,隨著類的消失而消失
成員變數:成員變數是隨著對象的創建而存在,隨著對象的消失而消失
D : 調用不同
靜態變數:可以通過對象名調用,也可以通過類名調用
成員變數:只能通過對象名調用
Ⅹ java中,什麼是靜態方法
首先靜態方法是用static來修飾的
靜態方法就是可以不通過生成類的實例直接來調用的
舉個簡單的例子:
class
A
{
public
static
void
a()
{
System.out.println("A被調用");
}
public
void
b()
{
System.out.println("B被調用");
}
}
假設你要調用方法a和方法b
如果調用方法a可以直接A.a();就可以了
不需要先
A
aa
=
new
A();aa.a();
但是調用b則必須A
aa
=
new
A();aa.b();
還有在繼承裡面要注意:
如果B繼承自A
而且B中和A中都包含相同的函數
如果是實例方法則是被B覆蓋掉的
如果是靜態方法則是被B隱藏掉的
這一點
在上溯機制中可能遇到
最後還有一點靜態方法調用的方法一定也要是靜態的