Skip to content

パッケージとインポート

ソースファイルはパッケージ宣言で始まることがあります。

kotlin
package org.example

fun printMessage() { /*...*/ }
class Message { /*...*/ }

// ...

ソースファイルのクラスや関数などのすべての内容は、このパッケージに含まれます。 そのため、上記の例では、printMessage() の完全修飾名は org.example.printMessage であり、 Message の完全修飾名は org.example.Message です。

パッケージが指定されていない場合、そのファイルの内容は、名前のない_デフォルト_パッケージに属します。

デフォルトのインポート

多数のパッケージが、すべてのKotlinファイルにデフォルトでインポートされます。

ターゲットプラットフォームに応じて、追加のパッケージがインポートされます。

インポート

デフォルトのインポートとは別に、各ファイルは独自の import ディレクティブを含むことができます。

単一の名前をインポートすることもできます。

kotlin
import org.example.Message // Message is now accessible without qualification

または、スコープ(パッケージ、クラス、オブジェクトなど)のアクセス可能なすべての内容をインポートすることもできます。

kotlin
import org.example.* // everything in 'org.example' becomes accessible

名前の衝突がある場合は、as キーワードを使用して衝突するエンティティをローカルで名前変更することで、曖昧さを解消できます。

kotlin
import org.example.Message // Message is accessible
import org.test.Message as TestMessage // TestMessage stands for 'org.test.Message'

import キーワードはクラスのインポートに限定されません。他の宣言をインポートするためにも使用できます。

トップレベル宣言の可視性

トップレベル宣言が private とマークされている場合、その宣言は宣言されたファイルに対してプライベートになります(可視性修飾子を参照)。