線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2329
推到 Plurk!
推到 Facebook!

static

答題得分者是:neoart
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-27 13:51:27 IP:122.124.xxx.xxx 未訂閱
Java在使用到類別時才會加以載入程式中,如果您要使用一個static資料或方法,而在載入一個類別時,您希望先進行一些初始化動作,您可以使用static定義一個區塊,並在當中撰寫初始化資源的動作,例如:

<textarea class="java" rows="10" cols="60" name="code"> public class Ball { public static int[] arr = new int[10]; static { // 一些初始化程式碼 } .... } </textarea> 請問上述到底實際上是什麼意思呢? 我只知道static資料或方法 可是不太了解上述這段 到底能拿來做什麼用處 麻煩幫忙解析一下 感謝
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-27 19:10:13 IP:220.132.xxx.xxx 訂閱
static 區塊的方法,我也是第一次看到
(sorry,目前我在工作中只用到1.4.x的jre)
不過我大概可以說一下,希望對你有幫助
就是初始化設定
以你的例子來看,有10個元素可以在這個static block設定,在"載入時" 做第一次初始化賦值
你總不能在每次的建構元中去判別是不是該陣列已初始化呢?( ex: if (xxx=null){ xxx的初始化} ) 這倒是可以省卻一些判別的小工作啦
我也小查了下一下,static block不可以有傳回值,另外,既然那是static方法,就不能用this & super這類的指標了(還有,例外處理,這點要小心)
另外,就singleton的static instance在建構時,可以用這方式,因為sychronization的成本有點高,直接以static block來賦值是不錯的選擇
參考 : http://jguru.com/faq/view.jsp?EID=249930
編輯記錄
neoart 重新編輯於 2007-05-27 19:12:18, 註解 無‧
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-29 00:13:41 IP:122.124.xxx.xxx 未訂閱
static block 是用來統一初始 目前類別所有static成員資料的嗎?

另外 若是static方法 那static block用來初始什麼呢?
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-29 08:31:23 IP:220.132.xxx.xxx 訂閱
你已經回答了你的問題了,
就是初始化static data member罷了,不是嗎?
只是他是發生在類別被載入時期,而非執行時期
還是你有看過不同的案例?
Randgris
一般會員


發表:20
回覆:30
積分:10
註冊:2007-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-01 17:06:35 IP:122.124.xxx.xxx 未訂閱
static function用的到 static block嗎??
===================引 用 neoart 文 章===================
你已經回答了你的問題了,
就是初始化static data member罷了,不是嗎?
只是他是發生在類別被載入時期,而非執行時期
還是你有看過不同的案例?
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-01 17:31:33 IP:61.64.xxx.xxx 訂閱
用不到--應該是我不知道有這樣的用法,歹勢
(你看到的,不是多在建構元函數中嗎?)
static function是可以呼叫,可以有例外處理
而static block是在載入時執行,沒有例外處理--->光這點我就不太會想用了,也沒有參數/引數
(沒有明確的function name,怎麼呼叫?對吧?)
編輯記錄
neoart 重新編輯於 2007-06-01 17:33:01, 註解 無‧
neoart 重新編輯於 2007-06-01 17:36:05, 註解 無‧
系統時間:2024-05-06 15:39:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!