Kotlin 面试题
目录

Kotlin 中主构造函数 (Primary Constructor) 的用法?

· 约 3 分钟读完 · 第 62 / 200 章

推荐答案

在 Kotlin 中,主构造函数是类头的一部分,紧跟在类名后面。主构造函数可以包含参数,这些参数可以在类体内直接使用。主构造函数的主要作用是初始化类的属性。

在这个例子中,Person 类有一个主构造函数,它接受两个参数:name 和 age。name 是一个只读属性(val),而 age 是一个可变属性(var)。

本题详细解读

主构造函数的定义

主构造函数是类头的一部分,紧跟在类名后面。它可以包含参数,这些参数可以在类体内直接使用。主构造函数的主要作用是初始化类的属性。

在这个例子中,Person 类有一个主构造函数,它接受两个参数:name 和 age。name 是一个只读属性(val),而 age 是一个可变属性(var)。

主构造函数的初始化

主构造函数的参数可以在类体内直接使用,通常用于初始化类的属性。Kotlin 提供了简洁的语法来定义属性和初始化它们。

在这个例子中,init 块用于在主构造函数执行时执行一些初始化代码。init 块可以有多个,它们会按照定义的顺序执行。

主构造函数的可见性

主构造函数的可见性可以通过在类名前面添加可见性修饰符来指定。默认情况下,主构造函数的可见性是 public。

在这个例子中,主构造函数的可见性被设置为 private,这意味着只能在类内部创建 Person 的实例。

主构造函数的默认参数

Kotlin 支持在主构造函数中使用默认参数,这使得构造函数更加灵活。

在这个例子中,name 和 age 都有默认值。如果在创建 Person 实例时没有提供这些参数,将使用默认值。

主构造函数与次构造函数

Kotlin 允许在类中定义多个构造函数,其中主构造函数是类头的一部分,而次构造函数是在类体内定义的。次构造函数必须直接或间接地调用主构造函数。

在这个例子中,Person 类有一个主构造函数和一个次构造函数。次构造函数接受一个参数 name,并调用主构造函数来初始化 name 和 age。