Developパッケージとはクラスを整理してわかりやすくひとまとめにしたものです。「Java.util.*」「Java.awt.*」などのようにJavaによって提供されているパッケージ内のクラスもありますが、パッケージを自分で作成する事もできます。今回はパッケージとはどのようなものなのか、そしてパッケージの作成方法を見ていきましょう。「Java」パッケージデフォルトパッケージパッケージ名の付け方パッケージを作成するこの記事のまとめ「Java」パッケージ例えばJavaファイルからコンパイルしたクラスファイルがあるとします。Cドライブ直下、Javaフォルダ内のtest1~5.class、です。(.class)書ききれないので5つのクラスとしましたが、何十と多くのクラスファイルを作ってくと大変見ずらいものとなってしまいます。フォルダやブックマークにダウンロードしたファイルや画像が増えていき整理しないと目当てのファイルを探すのも一苦労ですよね。違う部分もありますがそのような感じです。違う部分というのは通常同じクラスファイル名を作成する事はできないのですが、パッケージでクラスファイルを管理する場合はパッケージを分ければたとえ同じクラスファイル名だったとしても別のクラスファイルとして扱われるのです。予約語とかぶらないようにする例えば「byte.class」というクラスを新規で作るとしましょう。byteという識別子は予約語としてJavaに存在しています。null一覧として出してみましたが、この中で予約語として該当するものはクラスとして作成する事が出来ません。パッケージで宣言してもこれは同じ事です。試しに「byte.java」を作りコンパイルしてみましたが、「identifierがありません」と表示されさらにmainメソッドの定義も含めて全てがエラーとなってしまいます。しても予約語を使いたいという場合は先頭の文字を大文字にするなどします。同一ファイル名を複数作成するには、パッケージに含める必要があります。「パッケージ名・パッケージ名2.クラスファイル名」などといった名前空間が与えられるので名前同士が衝突する事なく利用する事ができるのです。その性質上、必ずパッケージ内に納める必要があります。「今までパッケージを指定する事なく作成していた通常のクラスファイルはどうなる?」という話になってきますよね。パッケージを意識して作成しているわけではないので。実はパッケージを宣言して作成したクラスファイルではなくても、全くパッケージを使用していない状態というわけではなくCドライブ直下のデフォルトパッケージを使用しているという事になります。パッケージ名の付け方コーディング規約というプログラムを書くために定義されたルールがあり、パッケージ名の付け方においてもこのような決まり事があります。複数人で共同、大規模なプログラムを行うための決まり事のようですが、ソースコードの可読性を高めるためにもあるので一人で開発を行う場合でも是非知っておきたいルールです。わかりやすいネーミングを付けるパッケージ名をつける場合はできるだけわかりやすいネーミングにします。パッケージ名が「tc」だけではこれが何を意味するのか判断できませんよね。これではパッケージが複数あったり時が経てば作成した自分自身でさえもわけがわからなくなる可能性があります。これを「testcalculator」にしたらどうでしょう?計算機・または電卓をテストで作ったクラスのパッケージだなという事がなんとなくわかります。全て小文字で統一するクラス名は「Test」のように単語の先頭の文字のみ大文字で後は小文字というルールです。それに対しパッケージ名は全て小文字にするというのが決まりのようです。ドメインを逆にする世界中でパッケージ名の衝突を避けるためドメインを逆にする事が推奨されているようです。Playストアで確認ストアで実際どのようなパッケージ名が使われているか確認してみました。スマホでだとよくわかりませんでしたが、PCなら簡単に確認する事が出来ます。「?id=」以降のURLの文字列がパッケージ名になっているんです。いくつか適当にパッと見ただけですがほとんどのAndroidアプリが、やはりドメインを逆にしているのかプロジェクト名やアプリ名を入れただけなのかわかりませんが「com.○○○.○○○」「jp.○○○.○○○」となっているようです。samthorパッケージを作成するではパッケージの階層を作り、その最下層に作ったJavaファイルを入れてコンパイル→実行までの流れをやってみましょう。パッケージを作成それではパッケージを作成しましょう。最終的にはパッケージ内のクラス含めて「jp.test.test2.test3.hoge.hoge.java」というものを作ります。GUIでも作れますが、コマンドプロンプトで作ってみます。詳しくは「コマンドプロンプトによるディレクトリ操作方法」で紹介しています。Hoge.java「Hoge.java」の中身Hogeクラスです。繰り返し処理を行うためにfor分を使いました。パッケージの宣言を行うのですがパッケージの階層は「.」で区切る事ができます。“回目”);}}}パッケージ内のクラスファイルをコンパイル→実行それではコマンドプロンプトを使いコンパイルから実行までやってみます。コマンド前にカレントディレクトリをパッケージの手前の階層まで移動しておきます。jp.test.test2.test3.hoge.Hoge当たり前の事ですが、パッケージの名前空間にあるクラスファイルを修正する度にコンパイルする必要があるので階層が深ければ深い程これが結構手間になります。この記事のまとめパッケージ以外にもjarファイルなるものがあります。こちらはパッケージよりも大きい概念でクラスやパッケージをZIP圧縮技術を使ってまとめられたファイルです。使う機会はなさそうです。