※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんにちは。こんぶです。
今日は、パッケージの役割の1つである「開発者が自由にクラス名を付けられるようにする」仕組みについて学んでいきましょう!
私の自己紹介等は、こちらからどうぞ。
また、Javaの学習を最初から進めていきたい方は、Java-1から見てみてくださいね。
クラス名の付け方~パッケージの役割~
現場では複数の開発者が分担して作業することが多いので、偶然同じクラス名を使用してしまうことがあるかもしれません。
内容の異なる別々のクラスで同じ名前が競合してしまうことを「名前の衝突」といい、区別がつかなくなってしまうので基本的にはNGです。
そこで、クラスをパッケージに所属させることで、クラス名が同じでもパッケージ名が異なれば完全限定クラス名(FQCN)が異なるので、名前の衝突を回避できます。
このように、パッケージには、できるだけ開発者が自由にクラス名を付けられるようにするという役割もあるんですね。
パッケージ名の衝突
パッケージに所属させていたとしても、パッケージ名もクラス名も同じになってしまった場合には区別がつかないためエラーとなってしまいます。
社内ではパッケージ名について調整できるかもしれませんが、複数社で開発を行う際には名前の衝突が起こることもありそうですよね。
そこで、Javaでは自社が保有するインターネットドメインを前後逆順にしたものから始まるパッケージ名の使用が推奨されています。
例えば、こんぶろぐのドメインは「beginnerteacher-kombu.com」なので「com.beginnerteacherkombu」となります。(パッケージ名に「-」は使用できないため省略しています)
インターネットドメインは固有のものなので、パッケージ名の頭に逆順のドメインを使用することで、他の組織とのパッケージ名の衝突を回避できます。
正式なプログラムでは、このルールを使用してパッケージ名を付ける必要があるので、覚えておきましょう。
パッケージ名
先程「-」は使用できないと言いましたが、他にもJavaのパッケージ名に使用できない文字があります。
パッケージ名に使用できない文字は、「ハイフン(-)」「スペース(空白)」「特殊記号(!@#%^&*()=+[]{}|;:'”,<>?/`~)」「Javaの予約語」です。
逆に使用できる文字は、「英字」「数字」「アンダースコア(_)」「ドル記号($)」ですが、アンダースコアとドル記号は推奨されていなく、数字は先頭に使用できないので、「英字」から始まり「英字」と「数字」を組み合わせたパッケージ名を付けるのが良いでしょう。
「ドット(.)」も使用できますが、フォルダの階層と一致させる必要があります。
また、公式のガイドラインでは「英字」は全て小文字を使用することが推奨されています。
今回のまとめ
★クラスをパッケージに所属させることで、パッケージ名が異なれば完全限定クラス名(FQCN)が異なるので、名前の衝突を回避できる
★Javaでは、自社が保有するインターネットドメインを前後逆順にしたものから始まるパッケージ名の使用が推奨されている
★パッケージ名に使用できない文字は、「ハイフン(-)」「スペース(空白)」「特殊記号(!@#%^&*()=+[]{}|;:'”,<>?/`~)」「Javaの予約語」
★パッケージ名に使用できる文字は、「英字」「数字」「アンダースコア(_)」「ドル記号($)」だが、アンダースコアとドル記号は推奨されていなく、数字は先頭に使用できない(ドット(.)も使用できるが、フォルダの階層と一致させる必要あり)
・名前の衝突:内容の異なる別々のクラスで同じ名前が競合してしまうこと
次回は、「Java API」について説明していこうと思います。
今回の内容のチャレンジ問題はこちらです→チャレンジ問題【Java-34】~パッケージの役割(クラス名)~
それでは、こんぶはじゃ~
コメント