作者TonyQ (沉默是金)
看板java
標題Re: [問題] non-static問題
時間Thu May 14 03:42:06 2009
※ 引述《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
→ TonyQ:這只是這個問題的可行解之一 , 不一定是最佳解. :p 05/14 03:44
→ TonyQ:原問題改static 是在於因為建立過程有引用non-static物件. 05/14 03:46
推 H45:夜深了 該睡了 (學校大停電 怒) 05/14 04:19
推 jimpop:哦哦哦哦!!!我終於懂了~~看來類別這部份要再看幾次了~謝謝! 05/14 14:04
推 jimpop:一直卡在static~~~也發現我的遞迴有錯誤~~再次謝謝T大 05/14 14:07