Kotlinパッケージとインポート(Packages)
パッケージ
packageキーワードはパッケージを定義し、パッケージ指定はソースコードの先頭に置く。
package com.devkuma
fun foo() {}
class Item {}
// ...
ソースファイル(クラス、関数など)のすべての内容は、宣言されたパッケージに含まれる。したがって、上の例から分かるように、foo()の完全修飾名はcom.devkuma.fooであり、Itemの完全修飾名はcom.devkuma.Itemになる。
もしパッケージが指定されていなければ、ファイルの内容は名前のない「default」パッケージに属する。
デフォルトパッケージ
次の8つのパッケージはデフォルトでインポートされる。そのため、別途インポートしなくても使用できる。
*は「すべて」を意味する。
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.*
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
プラットフォームに応じて、追加のパッケージがインポートされる。
JVM:
java.lang.*
kotlin.jvm.*
JS:
kotlin.js.*
imports(インポート)
importはパッケージを取り込む。asは取り込んだエンティティに別名を付ける。
デフォルトImportを除き、一部のファイルは独自のimport命令を持つ。
1つの名前だけを指定してimportできる。
import foo.Bar // Barにアクセスできるようになる。
または、ある範囲(パッケージ、クラス、オブジェクトなど)のすべてにアクセスできるようにすることもできる。
import foo.* // 'foo'内のすべてにアクセスできるようになる。
名前の衝突がある場合は、asキーワードを使って衝突するエンティティを局所的に名前変更し、明確にできる。
import foo.Bar // Barはアクセス可能である。
import bar.Bar as bBar // bBarは'bar.Bar'を意味する。
importキーワードはクラスを取り込むためだけに限定されない。他の宣言を取り込むためにも使用できる。
- トップレベル関数およびプロパティ
- オブジェクト宣言で宣言された関数とプロパティ
- enum定数
Javaとは異なり、Kotlinは別の「import static」構文を提供しない。すべての宣言はimportキーワードだけで取り込む。
トップレベル宣言の可視性
トップレベル宣言にprivateが付いている場合、それは宣言されたソースファイルに対して非公開である。