Re: [問題] 請問一個關於method的問題

看板java作者 (囧rz)時間15年前 (2010/08/24 22:59), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串2/2 (看更多)
//=========測試程式================== 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

08/24 23:07, , 1F
你可以回傳 this 啊
08/24 23:07, 1F

08/24 23:11, , 2F
哈哈 忘記this的存在 剛剛試 return this; 也可以
08/24 23:11, 2F

08/24 23:11, , 3F
放外面不知道會new到什麼時候...
08/24 23:11, 3F

08/24 23:19, , 4F
我不懂樓上的意思 為什麼會變成不知道要new到什麼時候??
08/24 23:19, 4F

08/24 23:43, , 5F
就是每次new Test()時 裡面又會new Test()
08/24 23:43, 5F

08/25 00:16, , 6F
原來如此 我懂了 ^^
08/25 00:16, 6F

08/25 01:25, , 7F
建議原PO再看熟OO 自然能夠明白:)
08/25 01:25, 7F
文章代碼(AID): #1CSzvaHM (java)
文章代碼(AID): #1CSzvaHM (java)