包(Package)与导入(Import)
源代码文件的开始部分可以是包声明:
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
源代码内的所有内容, 比如类, 函数, 全部都包含在所声明的包之内. 因此, 上面的示例代码中, printMessage()
函数的完整名称将是 org.example.printMessage
, Message
类的完整名称将是 org.example.Message
.
如果没有指定包, 那么源代码文件中的内容将属于 默认 包, 这个包没有名称.
默认导入
以下各个包会被默认导入到每一个 Kotlin 源代码文件:
根据编译的目标平台不同, 还会导入以下包:
JVM 平台:
java.lang.*
JavaScript 平台:
导入(Import)
除默认导入(Import)的内容之外, 各源代码可以包含自己独自的 import
指令.
我们可以导入一个单独的名称:
import org.example.Message // 导入后 Message 就可以直接访问, 不必指定完整的限定符
也可以导入某个范围之内所有可访问的内容, 比如包, 类, 对象, 等等:
import org.example.* // 导入后 'org.example' 内的一切都可以访问了
如果发生了名称冲突, 你可以使用 as
关键字, 给重名实体指定新的名称(新名称仅在当前范围内有效):
import org.example.Message // 导入后 Message 可以访问了
import org.test.Message as TestMessage // 可以使用新名称 TestMessage 来访问 'org.test.Message'
import
关键字不仅可以用来导入类; 还可以用来导入其他声明:
顶级(top-level) 声明的可见度
如果一个顶级(top-level) 声明被标注为 private
, 它将成为私有的, 只有在它所属的文件内可以访问(参见 可见度修饰符).
最终更新: 2024/10/17