我現(xiàn)在想知道:當我需要傳遞參數(shù)和/或需要構造函數(shù)內的附加功能時,我是否需要創(chuàng)建自己的構造函數(shù)?是否還有其他情況依賴默認構造函數(shù)會出現(xiàn)問題?? ? private MenuIterator() {? ? ? ? menuIterator = menu.iterator();? ? ? ? calculateNumMenuItems();? ? }
3 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
當您需要為類執(zhí)行某種設置并且字段初始化還不夠時,您就需要一個構造函數(shù)。您描述的構造函數(shù)沒有任何意義,因為您的構造函數(shù)無法獲取menu
(并且private
修飾符阻止您new MenuIterator()
以通常的方式調用)。

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
本質上,如果您提供任何構造函數(shù)(甚至是無參數(shù)構造函數(shù)),將不再為您提供默認構造函數(shù)。
如果您需要執(zhí)行除調用類的超類構造函數(shù)之外的任何操作,則需要提供自己的構造函數(shù)。

慕慕森
TA貢獻1856條經驗 獲得超17個贊
如果您需要構造函數(shù)不是公共的,您還需要一個顯式構造函數(shù)。如果您希望類的客戶端通過靜態(tài)工廠方法獲取實例而不是直接使用構造函數(shù),則屬于這種情況。單例模式只是用于獲取實例的靜態(tài)方法的多種用途之一。
我不會太擔心。盡管您的講師有一個帶有構造函數(shù)的良好解決方案,但您很可能也有一個沒有構造函數(shù)的良好解決方案。編程問題總是可以通過不止一種方法來解決。
添加回答
舉報
0/150
提交
取消