Re: [問題] non-static問題

看板java作者 (沉默是金)時間16年前 (2009/05/14 03:42), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串4/5 (看更多)
※ 引述《jimpop (popmij)》之銘言: : ※ 引述《TonyQ (沉默是金)》之銘言: : 嗯~那我把我的碼po出來~ : 小小說明一下~ : 這是出問題的地方 : 在這上面有這六個物件~我"猜"應該不是重點 : 在程式一開始定義這六個物件 : 因我想比較它們誰最大 : 我就把它們全部存入一維陣列 : 然後再來比較 : 我的最大問題是: : 要怎麼弄才能讓arr[]這個順利完成並讓larger函數使用!? : 那個遞迴也許有邏輯錯誤~但想先把這問題弄好再來想~~ : 謝謝T大的指引 : 我確實是static{}這樣@@ : public class a1 : { static double arr[]=null; public static void initArr(){ 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(); arr=new double[]{a1.area(r1),a2.area(r1,r2),a3.area(r1),b1.area(r1),b2.a }; } : public static void main(String args[]) : { initArr(); : 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); : } : } : } --- 其實把上面幾個物件都改 static 也行 , 不過一般來講是不會建議都用 static 來作啦 . 既然你只需要 arr 這個array , 寫個init method 來建立他就好. -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.78.140

05/14 03:44, , 1F
這只是這個問題的可行解之一 , 不一定是最佳解. :p
05/14 03:44, 1F

05/14 03:46, , 2F
原問題改static 是在於因為建立過程有引用non-static物件.
05/14 03:46, 2F

05/14 04:19, , 3F
夜深了 該睡了 (學校大停電 怒)
05/14 04:19, 3F

05/14 14:04, , 4F
哦哦哦哦!!!我終於懂了~~看來類別這部份要再看幾次了~謝謝!
05/14 14:04, 4F

05/14 14:07, , 5F
一直卡在static~~~也發現我的遞迴有錯誤~~再次謝謝T大
05/14 14:07, 5F
文章代碼(AID): #1A2oAGSR (java)
文章代碼(AID): #1A2oAGSR (java)