討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 掌握Salesforce雲端管理秘訣 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
不懂...java的static方法和變數
更改我的閱讀文章字型大小
作者 : warrior(小呆)
[ 貼文 1 | 人氣 138 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/4/9 下午 01:59:01
我是一個初學的新手
對於java的static方法和變數實在是搞不清楚
我想問一下各位高手
static的方法和變數到底它的存取規則是什麼勒
它的範圍是什麼
還有
把方法和變數宣告成有什麼好處呢
又什麼時候使用static的方法和變數比較好呢
就降子
希望各位高手能替小弟回答一下
先謝謝啦
作者 : acericlin(網路芭樂)
[ 貼文 68 | 人氣 304 | 評價 170 | 評價/貼文 2.5 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/4/10 上午 09:44:51
我也不是非常的了解, 所以只能將我所知道的用法提出來...

基本上, 當一個變數被宣告成 static 的時候,

就表示它在記憶體裡只會有"一個它"存在...

** EX.1 **

public class TestA {
public static int num;

public static methodA() {
....
}
....
}

從上面的例子來看,

假如你製造出三個 TestA 的物件,

其變數 num 還是只有一個,

也就是說, 那三個 TestA 的物件分享的那個變數 num...

所以, 當其中一個 TestA 改變了 num 的值,

另外兩個 TestA 物件裡的 num 也會跟著改變 (因為都是同一個 num)...

還有, static 提供了一個直接存取的作用,

也就是說, 不用先做出 TestA 的物件就可以得到或使用 num 的值...

** EX.2 **

public class TestB {

public void methodB() {
if (TestA.num == 1) {  //直接使用 num
TestA.methodA();  //直接使用 methodA
....
}
....
}

從上面的例子來看, 我們就可以發現到,
只要有 class 的名稱加上 "." 再加上變數的名稱就可以直接用其值...

至於 static 方法也是一樣, 不用先做出 TestA 的物件就可以使用其方法 (看 EX.2)...

不過, static 方法與變數不同之處是 static 方法沒有單一性, 而變數有...

另外, 有一點要特別注意的,

就是"只有 static 的變數才能被 static 的方法處理"...

原因是 static 方法能直接被使用, 而"非 static 的變數"則必須要等物件被製造出來後才存在...

...........

嗯... 至於 static 的變數和方法的使用時機嘛...

原則上是能不用就不用, 直到有某些特殊情況才用...

譬如說有需要令某變數非單一存在不可, 或是需要直接存取其值等等...

...........

我所了解的大概就這樣, 希望能幫到你... ^^

如果有錯誤, 還望各位前輩不吝賜教...
作者 : warrior(小呆)
[ 貼文 1 | 人氣 138 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/4/12 上午 02:40:16
mm...有點懂了^^
謝囉~~
作者 : canby(canby)
[ 貼文 47 | 人氣 2394 | 評價 80 | 評價/貼文 1.7 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/4/13 下午 09:02:15
static 所宣告的object為global object
也就是和程式一起結束消失.
但可見度只限在所宣告的scope
如在class中宣告那只有這個class可用
如在function宣告也只有宣告所在的function可見
所以用法為特定範圍才可見的全域變數
 板主 : Jammy
 > 新手入門 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 新手入門 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
新手入門
1 Raymond 900 
2 BK. 820 
3 Jasper 500 
4 太子 500 
5 Benson 410 
6 joe 400 
7 DEMO999 370 
8 青衫 300 
9 小朱 300 
10 Eric Ho 290 
新手入門
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875