主要构造函数,辅助构造函数和类成员在Kotlin中如何交互?

时间:2019-07-20 03:49:50

标签: kotlin constructor

我研究了official documentation以及与此主题herehere相关的问题。内的答案重新说明了文档,但没有解释这三者之间的联系。

到目前为止,在我所看到的代码中,类成员依赖于要实现的主要构造函数中的参数。一切正常且有意义。

第二个构造函数出现了,我看不到它们如何协同工作。例如,我不理解的一个概念是类成员如何利用辅助构造函数。

我希望有人解释主要构造函数,次要构造函数和类成员如何交互,以及为什么在实际示例中,次要构造函数是有益的。

谢谢。

1 个答案:

答案 0 :(得分:0)

  

类成员依赖于主要构造函数中的参数来实现

他们没有;只有属性初始值设定项和init块可以使用这些参数(如果它们也不能用作属性),但是方法不能使用。

  

例如,我不了解的一个概念是类成员如何利用辅助构造函数。

他们没有;每个辅助构造函数都必须调用主要构造函数(这就是为什么将其称为主要构造函数),并且initializers / init块将使用主要构造函数调用中的参数。

  

为什么次级构造函数在实际示例中会有所帮助

因为它们可以提供另一种方法来构造类的实例?我不确定您还在寻找什么。有关示例,请参见ArrayList的构造函数:

<init>(initialCapacity: Int)
<init>(elements: Collection<E>)