Re: [問題] non-static問題

看板java作者 (!H45)時間16年前 (2009/05/14 04:29), 編輯推噓3(300)
留言3則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《jimpop (popmij)》之銘言: : ※ 引述《TonyQ (沉默是金)》之銘言: : : 應該這麼說 , 你根本就沒搞清楚你的問題...-_-;; : : 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); : } : } : } 改成這樣: 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[]) { // 創造 a1 類之物件 a a1 a = new a1(); // 印出 a 物件之 larger 方法所回傳的數字 System.out.println(a.larger(0,5,0)); } // 刪掉 static public 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); } } } 但是沒有提供 CCircle, CTriangle, CSquare, CCircle2, CTriangle2, CSquare2 叫我們怎麼編譯..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.235.24

05/14 05:19, , 1F
你跟我剛剛碰到的狀況一樣 XDDDDDDDDDDDDDDDDD
05/14 05:19, 1F

05/14 14:18, , 2F
抱歉~因反覆找尋後~問題在於這個non-static~所以就沒po上來
05/14 14:18, 2F

05/14 14:21, , 3F
謝謝H大這個方法~~看來我的java還沒進入狀況@@得多多學習~~
05/14 14:21, 3F
文章代碼(AID): #1A2osRjQ (java)
文章代碼(AID): #1A2osRjQ (java)