フォルダー構造とパッケージ
- 解説
- 1. フォルダー構造
- 2. ソースフォルダー
- 3. パッケージ
- 4. パッケージの命名規則
- 5. パッケージの宣言
解説
1. フォルダー構造
前のページで作成したプロジェクトのフォルダー構造を見ていきましょう。
Javaなどのプログラム言語によるアプリケーション開発では、プロジェクトという単位で管理が行われますが、通常これはただのフォルダーです。
今回のアプリケーションでは「workspace_java_basic」というフォルダーとなり、これをプロジェクトフォルダー/プロジェクトルートと呼びます。
VSCodeでは、このプロジェクトフォルダーを開くことで「このアプリケーションに対する作業を開始するよ」ということになり、自分のプログラムファイルだけでなく、VSCodeが作成する設定ファイルなどもこの中に入ります。
2. ソースフォルダー
Javaプログラムを書きこんだ「FirstStep.java」というJavaファイルは、プログラムファイル/ソースファイルなどと呼びます。
ソースとは、コンパイルにより作成される実行ファイルの「元になるもの」という意味です。
また、そのファイルを格納するフォルダーはプログラムフォルダー/ソースフォルダーと呼びます。
プログラムは目的などにより書き込むファイルが分かれるため、ちょっとしたアプリケーションでもかなりのファイル数になります。そのため、ソースファイルには目的などに応じた名前を付け、適切なソースフォルダーに仕分けして格納する必要があります。
3. パッケージ
ソースファイルは仕分けしてバラバラのソースフォルダーに格納されてしまいますが、それぞれが連携して動くためには、お互いに認識できる「一意な名前」が必要となります。
ファイル名だけでは、別のフォルダーに同名のファイルが存在し得るため、一意とは言えません。逆に、同じフォルダー内には同名のファイル/フォルダーは作れませんので、フォルダー階層も含めることで一意に識別することが可能です。
Javaでは各ソースフォルダー階層をピリオド「.」でつなぐことで、一意な名前を表現します。これをパッケージと言います。今回作成した「FirstStep.java」というソースファイルに対するパッケージは「net.digskill」となります。
フォルダー構造とパッケージ名の例
4. パッケージの命名規則
パッケージ、およびそれが指し示すソースフォルダーは、すべて小文字で表記するという命名規則がありますので、それに従いましょう。
また、世界的に一意であることを簡単に実現するため、そのプログラムの所有者や作成者が属する組織の所有する、インターネットドメインを逆順にしたパッケージ名を先頭につけることが推奨されています。
このプログラムも「digskill.net」での学習に用いるため、「net > digskill」というソースフォルダーの構造を構築し、「net.digskill」が常にパッケージ名の先頭に付くようにしているのです。
5. パッケージの宣言
実際のプログラム内では、ソースファイルの先頭でパッケージを宣言します。「FirstStep.java」においても、1行目でパッケージ宣言が行われていますね。
package net.digskill;
public class FirstStep {
public static void main(String[] args) {
System.out.println("Hello!");
}
}
ソースファイルを作成したら、格納したソースフォルダーの階層と一致するパッケージを宣言することを忘れないでください。
パッケージによるプログラム間の連携については、少し先の「インポート」のページで学習します。
問題
確認問題
確認問題1
この中でフォルダー構造やパッケージの説明として正しくないものはどれか?