Kotiln包
一个源文件以包声明开始:
package foo.bar
fun bza() {}
class Goo {}
源文件的所有内容(比如类和函数)都被包声明包括。因此在上面的例子中,bza()的全名应该是foo.bar.bza,Goo的全名是foo.bar.Goo如果没有指定包名,那这个文件的内容就从属于没有名字的 “default” 包。
默认导入
许多包被默认导入到每个Kotlin文件中:
– kotlin.
– kotlin.annotation.
– kotlin.collections.
– kotlin.comparisons. (since 1.1)
– kotlin.io.
– kotlin.ranges.
– kotlin.sequences.
– kotlin.text.
一些增强包会根据平台来决定是否默认导入:
– JVM:
—- java.lang.
—- kotlin.jvm.
– JS:
—- kotlin.js.*
Imports
我们可以导入一个单独的名字,比如下面这样:
import foo.Bar // Bar 现在可以不用条件就可以使用
或者范围内的所有可用的内容 (包,类,对象,等等):
import foo.*/ /foo 中的所有都可以使用
如果命名有冲突,我们可以使用 as 关键字局部重命名解决冲突
import foo.Bar // Bar 可以使用
import bar.Bar as bBar // bBar 代表 'bar.Bar'
import关键字不局限于导入类;您也可以使用它来导入其他声明:
– 顶级函数与属性
– 在对象声明中声明的函数和属性
– 枚举常量
可见性和包嵌套
如果最顶的声明标注为private,那么它是自己对应包私有。如果包内有私有的属性或方法,那它对所有的子包是可见的。注意包外的的成员是默认不导入的,比如在导入foo.bar后我们不能获得foo的成员