LoginSignup
33
40

More than 5 years have passed since last update.

Javaのpackage・import・修飾子について

Last updated at Posted at 2015-02-23

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 抽象メソッド
... ...
33
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
40