2013-04-20 83 views
-2

如果在函數中以較小的參數遞歸調用,並且在此函數內部,我們正在創建一個類的對象。遞歸創建的對象將具有相同的名稱,因此我們無法保留名稱唯一性。我們如何在Java中處理這種情況?在Java中遞歸調用創建新對象的函數

+0

您是否有代碼例如? – Maroun 2013-04-20 14:25:59

+4

對象沒有名字,變量有名字,但它們也有一個作用域 – 2013-04-20 14:28:38

回答

2

我認爲這個問題源於誤解。在Java中,您給本地變量的名稱在代碼運行時是100%無關緊要的 - 唯一的目的是讓程序員指定您正在討論的變量(通過提供其名稱並使編譯器通過查看本地範圍,它上面的範圍等來弄清楚你的意思)。所以,如果你有一個自我調用的遞歸方法,並且在這個方法中聲明瞭包含新對象的變量,那麼就Java而言就不會有衝突,並且它們都將正確地引用不同的地方的不同對象在記憶中。


如果你實際上意味着「我要記錄所有新對象我使我的遞歸方法,而是讓他們有明顯的賠償與」,然後通過使集合(ArrayList爲例)啓動的一個參數傳遞給你的遞歸方法 - 然後你可以添加所有新創建的對象到這個集合中,當它完全返回時,它將充滿你新創建的對象。但是,如果這還不夠明顯,那麼你需要問'什麼可以區分這些物體?'這將取決於對象的用途(遞歸方法的某些參數應該是「名稱」的一部分嗎?還有其他一些狀態?還是隻需要是隨機的和唯一的?)。

+0

你是對的,但提問者也想訪問舊對象 – shiladitya 2013-04-20 14:28:59

+0

@shiladitya:你在哪裏找到這樣的請求問題? – 2013-04-20 14:29:51

+0

這就是我推斷。否則這個問題沒有意義:) – shiladitya 2013-04-20 14:30:46