Re: [問題] non-static問題
※ 引述《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
05/14 05:19, 1F
推
05/14 14:18, , 2F
05/14 14:18, 2F
推
05/14 14:21, , 3F
05/14 14:21, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):