Javaのpackage・import・修飾子に関するメモ
package
Javaパッケージ(Java package)は名前空間の中にあるJavaクラスをまとめるメカニズムである。(wikipediaより)
__package__とは、複数のクラスをまとめる仕組みであり、クラスの__名前空間__や__アクセス制御__に利用される。
パッケージに分割すると__クラスやインターフェースの名前衝突を防ぐ__ことができる。
しかし、Javaにはパッケージ名の衝突を防ぐ仕組みはなく、__インターネットドメイン名(DNSドメイン名)__を利用することを推奨している。
/* パッケージ名 */
info.ktaro.www
パッケージ宣言は、行の先頭で行う必要がある。
/* 例 */
package info.ktaro.www
class Sample{
...
}
import
Javaソースファイル内でパッケージを使うことで、import文でパッケージからクラスをインポートすることは便利なものとなる。(wikipediaより)
__import文__は、他のパッケージ内のクラスやインターフェイスを参照するために利用する。
ただし、上記は必須ではない。
/* importを利用しない書き方 */
java.util.List<String> list = new java.util.ArrayList<String>();
/* importを利用した書き方 */
import java.util.*
...
List<String> list = new List<String>();
importの種類
オンデマンドインポート
アスタリスク(*)を利用したインポート。
import java.util.*
単一型インポート
個別に型名を指定したインポート。
import java.util.List
オンデマンドインポートは便利な半面、多用すると__名前衝突を発生させる__可能性が高くなるため、なるべく__単一型インポート__を行うように心がける。
修飾子
クラス
修飾子(アクセス制御)
修飾子 | 意味 |
---|---|
public | どこからでもアクセス可能。 |
なし | 同一パッケージ内のみアクセス可能 |
修飾子
修飾子 | 意味(記述なし) |
---|---|
final | 拡張継承を禁止。(継承可能) |
abstract | 抽象クラス。(具象クラス) |
... | ... |
メンバ(フィールド、メソッド、コンストラクタ、etc.)
修飾子(アクセス制御)
修飾子 | 意味 |
---|---|
public | どこからでもアクセス可能。 |
private | そのクラス内からのみアクセス可能 |
protected | そのクラス内、継承クラス、パッケージ内の他クラスからアクセス可能 |
なし | そのクラス内、パッケージ内の他クラスからアクセス可能 |
フィールド宣言
修飾子 | 意味 |
---|---|
final | 再代入禁止。(定数) |
static | クラスフィールド |
... | ... |
メソッド宣言
修飾子 | 意味 |
---|---|
final | オーバーライド不可 |
static | クラスメソッド |
abstract | 抽象メソッド |
... | ... |