HOME > Javaの修飾子
Javaの修飾子
変数やメソッド・クラスの挙動を指定するもの、それが修飾子です。
修飾子には以下のようなものがあります。
アクセス修飾子
アクセス修飾子は、メンバー変数とメソッド、クラスに指定することができる修飾子で、その変数やメソッドを参照できる範囲を指定する機能を持ちます。
アクセスできる範囲は以下の表の通りです。例えば、メソッドにprivateを指定したとするとそのメソッドは同一クラス内からしか呼び出すことができなくなります。
修飾子 | 説明 |
---|---|
private | 同じクラス内からのみアクセス可能。 |
指定なし | 同一クラス、パッケージのみアクセス可能。 |
protected | 同一クラス、パッケージ、サブクラスのみアクセス可能。 |
public | どこからでもアクセス可能。 |
- メンバー変数に対するアクセス修飾子サンプル
-
private String a = "ABC";
- メソッドに対するアクセス修飾子サンプル
-
private void method() { }
- クラスに対するアクセス修飾子サンプル
-
public class SampleClass { }
クラスでpublic以外のアクセス修飾子を指定できるのは内部クラスのみです。
abstract修飾子
abstract修飾子は、メソッド、クラスに指定することができる修飾子で、付加すると抽象クラス、抽象メソッドとなります。
詳細は以下の表を参照いただくとして、抽象化すると自分自身のクラスはインスタンス化(new)することができなくなり、サブクラスを作成することが必須となります。
どれに付けるか | 説明 |
---|---|
クラス | クラスに付けると抽象クラスになります。抽象クラスとしたクラスはインスタンス化(new)することができなくなり、継承したサブクラスを作ることが必須となります。 抽象クラス内には抽象メソッドを作成しても作成しなくてもどちらでもOKです。 |
メソッド | メソッドに付けると抽象メソッドになります。抽象メソッドは以下の例のように処理の内容を記述することができなくなり、サブクラスでの実装が必須となります。 また、抽象メソッドを作成したらクラスにもabstract指定して抽象クラスとする必要があります。 |
- メソッドに対するabstract修飾子サンプル
-
abstract void method();
- クラスに対するabstract修飾子サンプル
-
abstract class SampleClass;
⇒詳しくは、「abstract修飾子」ページをご覧ください。
final修飾子
final修飾子は、変数・メソッド・クラスに指定することができる修飾子で、どれに付けたかによって意味合いが変わります。
意味合いは以下の表の通りです。
どれに付けるか | 説明 |
---|---|
変数 | 変数に付けた場合、その変数は定数となります。定数は変数宣言時に初期値の代入が必須となり、以後その値を変更することはできません。 メンバー変数、ローカル変数どちらにも指定可能です。 |
メソッド | メソッドに付けた場合、そのメソッドはオーバーライド不可となります。 |
クラス | クラスに付けた場合は、そのクラスは継承不可となります。 |
- 変数に対するfinal修飾子サンプル
-
public final String VALUE = "ABC";
- メソッドに対するfinal修飾子サンプル
-
public final void method(){ }
- クラスに対するfinal修飾子サンプル
-
final class SampleClass{ }
⇒詳しくは、「final修飾子」ページをご覧ください。
static修飾子
static修飾子は、メンバー変数・メソッドに指定することができる修飾子で、staticを指定するとインスタンスを生成しなくても(newしなくても)使用できるようになります。
使用される状況としては、全てのクラス共通で使われる変数や共通メソッドに使用したりします。
- メンバー変数に対するstatic修飾子サンプル
-
public static String aa = "ABC";
- メソッドに対するstatic修飾子サンプル
-
public static void method() { }
⇒詳しくは、「staticメソッド/static変数」ページをご覧ください。
Java基本カテゴリ