2012年04月12日

javaの修飾子の種類


修飾子一覧
修飾子一覧
修飾子 クラス インタフェース メソッド コンストラクタ ブロック 変数 説明
public
×
アクセス修飾子
protected
×
アクセス修飾子
private
×
アクセス修飾子
static
×
×
スタティック修飾子
final
×
×
×
ファイナル修飾子
abstract
×
×
×
抽象修飾子
native
×
×
×
×
×
ネイティブ修飾子
synchronized
×
×
×
×
同期修飾子
transient
×
×
×
×
×
一時的修飾子
volatile
×
×
×
×
×
揮発性修飾子
strictfp
×
×
×
×
×
厳密浮動小数修飾子
const
×
×
×
×
×
×
定数


アクセス修飾子(public, protected, private)
public、protected、private は アクセス修飾子 と呼ばれ
指定した変数やクラスなどを、どの範囲から参照可能かを表すのに用いられます

public:すべてのクラスからの参照可能
protected:他ファイル・他クラスからのアクセスをプロテクトする
private:自クラスからのアクセスのみ可能
public class Test1 {//Test1はどこからでもアクセス可能
	public int public_int;
	//public_intはどこからでもアクセス可能
	protected int protected_int;
	//protected_intはファイル内でならアクセス可能
	private int private_int;
	//private_intはTest1内でのみアクセス可能
}
class Sub_Test1 extends Test1{//Test1のサブクラス
	//public_int・protected_intはアクセス可能
	//private_intはアクセス不可
}

スタティック修飾子(static)
static は、クラスがインスタンス化されていなくても
そのクラス・メソッド・変数などを参照可能であることを示します
インスタンス化とは・・・
static class Test{
	public static int bai(int test_int) {
		return test_int*2;
    }
}

public class Test2{
	//static 宣言されていれば
	int x = Test.bai(y);// 直接呼び出せる
	//static 宣言されていなければ
	Test test = new Test();// インスタンス化が必要
	int x2= test.bai(y2);
}


ファイナル修飾子(final)
finalは上書きされないことを意味します
クラスに用いた場合はサブクラスを定義できません
メソッドに用いた場合はサブクラスでメソッドをオーバーロードできません
変数に用いた場合はその変数を変更できないことを意味します

抽象修飾子(abstract)
abstractは、クラス・インタフェース・メソッドが不完全なものであることを示します
抽象クラスはそのままではインスタンス化することができません
自分もよくわかっていませんwww

ネイティブ修飾子(native)
nativeはメソッドに使用しがネイティブメソッド
であることを示します
ネイテブメソッドは型、メソッド名、引数の型といった作法のみを定義するもので
中身は別途実装する必要があります

同期修飾子(synchronized)
synchronizedメソッドがマルチスレッド環境で実行される場合
メソッドのインスタンスを対象として排他制御が行われます
排他制御とは
あるスレッドがアクセスしているときに、別のスレッドが重ねてアクセスしようとすると
先に使っていたスレッドによる処理が終了するまで待機させられます
またsynchronized修飾されたメンバーは、一つのスレッドにアクセスされるとロックされて
マルチスレッドによる同時アクセスを防ぐことが出来ます

一時的修飾子(transient)
オブジェクトをストリーム化(直列化)すると、オブジェクトをそのままファイルとして保存したり
ネットワークを介してやりとりすることができるようになります
(またはシリアライズといいます)
transient修飾子付きの変数は一時的な変数でありシリアライズの対象から除外されます
このように、ストリーム化する際に必要のないものに対しては、 transient で宣言します

揮発性修飾子(volatile)
synchronizedの軽量版w

厳密浮動小数修飾子(strictfp)
strictfpで定義された式内では計算の中間結果の表現もすべて
IEEE 754 規格に定められた数値集合が使用されるそうです
そのため式内の浮動小数点数の動作が変わる可能性があるらしいですw

定数修飾子(const)
現在キーワードのみが定義されており、実際に使用されるケースはないらしい
スポンサードリンク

posted by kenken at 15:33 | Comment(0) | TrackBack(0) | java その他 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/264041050
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。