作者THEBUG (囧rz)
看板java
標題Re: [問題] 請問一個關於method的問題
時間Tue Aug 24 22:59:45 2010
//=========測試程式==================
public class Test{
//Test i = new Test(); 放這裡編譯完成之後執行會現下面錯誤 這是為什麼??
// 錯誤訊息 at Test.<init>(Test.java:2)
public Test a(){
Test i = new Test();
return i;
}
public int b(){
return 1;
}
public static void main(String[] args){
Test m = new Test();
int i = m.a().b();
System.out.println(i);
}
}
//============END======================
→ a761007:如果你m.a()回傳的是Test object 你就能m.a().b() 08/24 21:42
推 yellowbooky:我想應該是frame.getContentPane()已經回傳一個容器 08/24 21:50
推 yellowbooky:物件了 再用物件的add方法可行 08/24 21:53
推 lvlightvivi:應該要a()的回傳物件含有b()函式才能用 08/24 21:58
就如同各位所說的確是只要 a() 回傳 Test object 就能 m.a().b()
但我又有問題了
為什麼我上面那段程式
Test i = new Test();
這句一定要放在 public Test a() 這 method 裡面??
放在外面就會出現
at Test.<init>(Test.java:2)
這錯誤呢??
感謝各位的回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.211.230
推 LPH66:你可以回傳 this 啊 08/24 23:07
→ THEBUG:哈哈 忘記this的存在 剛剛試 return this; 也可以 08/24 23:11
推 lvlightvivi:放外面不知道會new到什麼時候... 08/24 23:11
→ THEBUG:我不懂樓上的意思 為什麼會變成不知道要new到什麼時候?? 08/24 23:19
推 lvlightvivi:就是每次new Test()時 裡面又會new Test() 08/24 23:43
→ THEBUG:原來如此 我懂了 ^^ 08/25 00:16
推 a761007:建議原PO再看熟OO 自然能夠明白:) 08/25 01:25