Edit Page

パッケージとインポート

パッケージ宣言をするときは、ソースファイルの先頭に書いてください。

package org.example

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

// ...

そうすると、ソースファイルの全ての内容(クラスや関数など)は、このパッケージに含まれる事になります。 従って上の例では、printMessage()の完全名はorg.example.printMessageとなり、 Messageの完全名はorg.example.Messageとなります。

もしパッケージが指定されない場合は、ファイルの内容は名前を持たないdefaultパッケージに属することになります。

デフォルトのインポート

幾つかのパッケージはkotlinのファイルにデフォルトで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 キーワードはクラスだけをインポートするために限定されるわけではありません。 クラス以外の宣言をインポートするために使用することもできます:

  • トップレベルの関数とプロパティ
  • object宣言で宣言された関数とプロパティ
  • enum定数

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

もしトップレベルの宣言にprivateマークがついていれば、それが宣言されたファイル内のプライベートです。 (可視性修飾子 を参照してください。)