Re: [問題] non-static問題

看板java作者 (popmij)時間16年前 (2009/05/14 03:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《TonyQ (沉默是金)》之銘言: : ※ 引述《jimpop (popmij)》之銘言: : : 標題: [問題] non-static問題 : : 時間: Thu May 14 03:01:15 2009 : : 我有個架構如下 : : 這樣子會出現 non-static問題 : : 也就是在 nn這個函數中無法使用arr[]這個陣列 : : 想問要如何寫arr[]只要定義一次 : : nn函數可以直接使用呢!? : : 我知道定義在nn函數中就可以了~ : : 但我真正架構nn是個遞迴 : : 這樣效率感覺很差~ : : 想問這要該怎麼改寫呢!? : : -- : : ◆ From: 125.229.95.163 : : 推 TonyQ:直接寫 static int arr[]={0,1,2}; 就好啦 -_-;; 05/14 03:02 : : → jimpop:應該這麼說~~陣列內容是其它類別的資料~~如果arr[]用static 05/14 03:08 : : → jimpop:會跑出更多的non-static~~我有試過static整個框起來~但不行 05/14 03:10 : 應該這麼說 , 你根本就沒搞清楚你的問題...-_-;; : static 函式無法存取非 static 成員(也就是 instance 成員) , : 但是非 static 函式可以存取 static 成員 , : 所以從 instance 改成 static 是絕對不可能造成更多的無法存取的問題. : (但有可能會蓋到同一繼承樹成員同名的變數 , 但這不在你的問題範圍.) : 還有如果我沒誤會 , 你所謂的"用static整個框起來" : 你說得應該是 : static{ : int arr[]={0,1,2}; : } : 這跟 static int arr[]={0,1,2}; 完全是兩回事 -_- : 如果你想趕快解決問題 , 問題跟環境的描述多一點 , : 多餘的臆測跟先入為主的成見 , 建議保守一點比較好. 嗯~那我把我的碼po出來~ 小小說明一下~ 這是出問題的地方 在這上面有這六個物件~我"猜"應該不是重點 在程式一開始定義這六個物件 因我想比較它們誰最大 我就把它們全部存入一維陣列 然後再來比較 我的最大問題是: 要怎麼弄才能讓arr[]這個順利完成並讓larger函數使用!? 那個遞迴也許有邏輯錯誤~但想先把這問題弄好再來想~~ 謝謝T大的指引 我確實是static{}這樣@@ public class a1 { int r1=3,r2=5; CCircle a1=new CCircle(); CTriangle a2=new CTriangle(); CSquare a3=new CSquare(); CCircle2 b1=new CCircle2(); CTriangle2 b2=new CTriangle2(); CSquare2 b3=new CSquare2(); double arr[]={a1.area(r1),a2.area(r1,r2),a3.area(r1),b1.area(r1),b2.area(r1,r2),b3.area(r1)}; public static void main(String args[]) { System.out.println(larger(0,5,0)); } public static double larger(int i,int a,int b) { if((i-1)==a)return b; else { if(arr[i]>arr[i+1])return larger(i+1,a,i); else return larger(i+1,a,i+1); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.229.95.163
文章代碼(AID): #1A2o4wJ0 (java)
討論串 (同標題文章)
文章代碼(AID): #1A2o4wJ0 (java)