鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全/ kotlin的主構(gòu)造器和次構(gòu)造器有什么區(qū)別?

kotlin的主構(gòu)造器和次構(gòu)造器有什么區(qū)別?

kotlin的主構(gòu)造器和次構(gòu)造器有什么區(qū)別?

回答
編輯回答
怣痛

主構(gòu)造函數(shù)在類頭中申明,而次構(gòu)造函數(shù)在類體中申明;
主構(gòu)造函數(shù)沒有任何修飾符時(shí)可以省略constructor關(guān)鍵字,而次構(gòu)造函數(shù)不能省略;
主構(gòu)造函數(shù)不能包含任何的代碼,而次構(gòu)造函數(shù)可以;
主構(gòu)造函數(shù)的參數(shù)可以在類體中的屬性初始化代碼和初始化塊中使用,而次構(gòu)造函數(shù)的參數(shù)不能;
主構(gòu)造函數(shù)中可以直接申明并初始化屬性,而次構(gòu)造函數(shù)不能直接申明屬性;
如果申明了主構(gòu)造函數(shù),那么所有的次構(gòu)造函數(shù)都必需直接或間接地委托給主構(gòu)造函數(shù);
非抽象類中如果沒有聲明任何構(gòu)造函數(shù),會(huì)生成一個(gè)不帶參數(shù)的主構(gòu)造函數(shù),而不會(huì)生成任何次構(gòu)造函數(shù)。

2018年5月8日 02:13
編輯回答
瘋浪

如果我沒記錯(cuò)的話,次構(gòu)造器必須調(diào)用主構(gòu)造器。

而且主構(gòu)造器是直接寫在類聲明上的

2017年1月23日 01:58