我研究了official documentation以及与此主题here和here相关的问题。内的答案重新说明了文档,但没有解释这三者之间的联系。
到目前为止,在我所看到的代码中,类成员依赖于要实现的主要构造函数中的参数。一切正常且有意义。
第二个构造函数出现了,我看不到它们如何协同工作。例如,我不理解的一个概念是类成员如何利用辅助构造函数。
我希望有人解释主要构造函数,次要构造函数和类成员如何交互,以及为什么在实际示例中,次要构造函数是有益的。
谢谢。
答案 0 :(得分:0)
类成员依赖于主要构造函数中的参数来实现
他们没有;只有属性初始值设定项和init
块可以使用这些参数(如果它们也不能用作属性),但是方法不能使用。
例如,我不了解的一个概念是类成员如何利用辅助构造函数。
他们没有;每个辅助构造函数都必须调用主要构造函数(这就是为什么将其称为主要构造函数),并且initializers / init
块将使用主要构造函数调用中的参数。
为什么次级构造函数在实际示例中会有所帮助
因为它们可以提供另一种方法来构造类的实例?我不确定您还在寻找什么。有关示例,请参见ArrayList
的构造函数:
<init>(initialCapacity: Int)
<init>(elements: Collection<E>)