アクセス修飾子(public, protected, private)
public は「すべてのクラスからの参照を許す」、protected は「他ファイル・他クラスからのアクセスをプロテクトする」、private は「自クラスからのアクセスしか許さない」
スタティック修飾子(static)
クラスがインスタンス化されていなくても、そのクラス、メソッド、変数などを参照可能。
// static 宣言されていれば
x = java.lang.Math.sin(y); // 直接呼び出せる
// static 宣言されていなければ
java.lang.Math m = new java.lang.Math(); // インスタンス化が必要
x = m.sin(y);
ファイナル修飾子(final)
final は上書きされないことを意味します。
クラスに用いた場合はサブクラスを定義できないことを、メソッドに用いた場合はサブクラスでメソッドをオーバーロードできないことを、変数に用いた場合は誰もその変数を変更できないことを意味する。
抽象修飾子(abstract)
クラス、インタフェース、メソッドが抽象的なものであり、不完全なものであることを示す。メソッド名、引数の型などのみを定義し、サブクラスが必ず実装しなくてはならない機能を明確にしておくのが主な利用目的。
抽象クラス はそのままではインスタンス化することができず、必ずサブクラスを定義して不完全なメソッドの実体を定義してから使用する必要があります。抽象クラスは通常、ひとつ以上の 抽象メソッドを含みます。抽象メソッドはメソッド名、引数の型のみが定義されていますので、どこかでその中身を定義する必要があります。
ネイティブ修飾子(native)
メソッドが ネイティブメソッド であることを示す。ネイテブメソッドは型、メソッド名、引数の型といった作法のみを定義するもので、C言語など他の言語を用いてその中身を実装する必要がある。
同期修飾子(synchronized)
メソッドがマルチスレッド環境で実行される場合、メソッドのインスタンスを対象に排他制御が行われる。ひとつのインスタンスが複数のスレッドを持つ場合は排他制御が行われ、スレッドが複数のインスタンスで実行される場合の排他制御は行われない。
一時的修飾子(transient)
一時的な変数であり、ディスクに保存したりネットワークで送信するための、オブジェクト情報のバイトストリームへの自動変換(シリアライズ)の対象外となる。
揮発性修飾子(volatile)
厳密浮動小数修飾子(strictfp)
浮動小数点演算がプラットフォームに依存しない
定数修飾子(const)
C/C++ 言語などで値を変更することができない変数。現在未使用