修飾子とは

javaには「修飾子」と呼ばれるものがあります。世間一般的に言われる修飾子と同じように、javaにおける修飾子も「メソッド」や「クラス」などを意味付けするものになります。javaにおける修飾子は、①アクセス修飾子 ②その他の修飾子 2つに分けられます。今回は①アクセス修飾子に焦点を当てて説明していこうと思います。
アクセス修飾子

アクセス修飾子 | 可視性 | 概要 |
public | + | 「すべてのクラス」からアクセス可能 |
protected | # | 「現在のクラス」と「サブクラス」からアクセス可能 |
なし(デフォルト) | ~ | 「現在のクラス」と「同じパッケージのクラス」からアクセス可能 |
private | – | 「現在のクラス」からだけアクセス可能 |
アクセス修飾子とは「クラス・メンバフィールド・メソッドの他クラスへの公開範囲を決めるもの」です。アクセス修飾子には ①public ②protected ③デフォルト ④privateの4種類が存在しています。
デフォルトは別名「パッケージプライベート」とも呼ばれています。何も記述していない状態ですが、アクセス修飾子として作動していることをきちんと頭に入れておかなければなりません。
アクセス修飾子の使い方
public class Sample extends sample_2 {
private sample;
void method() {
//処理内容
}
}
public class Sample_2 {
protected void method() {
//処理内容
}
}
アクセス修飾子は、「クラス」「メンバフィールド」「メソッド」などに対して使用します。上記の中から4つのアクセス修飾子を探してみてください… 見つけることはできたでしょうか?
アクセス外のクラスからメソッドなどを呼び出そうとすると、コンパイルエラーになります。こうすることで不用意にバグが生じるのを防いでいます。
フィールドに対してついているアクセス修飾子はprivateです。カプセル化の概念から、一般的にフィールドに対しては「private」をつけることになっています。予想外のところで値が変わってしまうなどのことをきちんと避けるようにしましょう。
アクセス修飾子以外


はじめに修飾子には①アクセス修飾子と②アクセス修飾子以外が存在するということを述べました。最後に簡単に修飾子の全体像についてまとめておくので気になる人はさらに詳しく調べてみてください。
最後に
アクセス修飾子はきちんとつけないと、不用意な部分で値を変更してしまったり、知らない間にバグが起きているということにもなりかねません。javaは大規模プロジェクトで使われることが多く、ソースも何年も継続して使われる場合があるのできちんとアクセス修飾子はつけるようにしましょう。