|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object
public class Object
全てのクラス階層のルートに存在するクラスです。
存在する全てのクラスは Object
クラスをスーパークラスに含みます。
オブジェクトとして存在するものはクラスに限らず配列もこのクラスに存在するメソッドを提供します。
Class
コンストラクタの概要 | |
---|---|
Object()
デフォルトのコンストラクタです。 |
メソッドの概要 | |
---|---|
boolean |
equals(Object obj)
オブジェクト同士を比較し、等しいか否かを返します。 |
Class |
getClass()
オブジェクトの実行時クラスである Class オブジェクトを返します。 |
int |
hashCode()
オブジェクトのハッシュコードを返します。 |
void |
notify()
このオブジェクトのモニターが待機させているいずれかのスレッドの実行を1つ再開します。 |
void |
notifyAll()
このオブジェクトのモニターによって待機中の全てのスレッドの実行を再開します。 |
String |
toString()
このオブジェクトの文字列表現を返します。 |
void |
wait()
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify() メソッドまたは notifyAll() メソッドが呼び出されまでその状態を継続します。 |
void |
wait(long timeout)
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify() メソッドまたは notifyAll() メソッドが呼び出されるか、指定された時間が経過するまでその状態を継続します。 |
void |
wait(long timeout,
int ns)
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify() メソッドまたは notifyAll() メソッドが呼び出されるか、指定された時間が経過するまでその状態を継続します。 |
コンストラクタの詳細 |
---|
public Object()
メソッドの詳細 |
---|
public final Class getClass()
Class
オブジェクトを返します。
このオブジェクトは表現するクラスの static synchronized
宣言のメソッドによってロックする対象となるものです。
Class
オブジェクトを返します。public int hashCode()
オブジェクトのハッシュコードを返します。
このメソッドは Hashtable
クラスのようなハッシュテーブルを構築するクラスに対してオブジェクトを登録する際に使用するために用意されています。
このメソッドの実装には以下のルールを適用しなければなりません。
equals(java.lang.Object)
メソッドによる比較対象が変更されていない場合、一貫して同じ値を返さなければなりません。
equals(java.lang.Object)
メソッドにおいて、等価とされるオブジェクトは同じ値を返さなければなりません。
equals(java.lang.Object)
メソッドにおいて、等価ではないとされるオブジェクトはそれぞれが別の値を返さなければなりません。
Object
クラスでは、できる限り異なるオブジェクトは異なる値を返すように実装しています。
public boolean equals(Object obj)
オブジェクト同士を比較し、等しいか否かを返します。 このメソッドの実装には以下のルールを適用しなければなりません。
true
を返さなければなりません。
true
となる場合はオブジェクト beta に対してオブジェクト alpha をパラメータとして呼び出しても true
が返さなければなりません。
true
となる場合はオブジェクト beta に対してオブジェクト cita をパラメータに呼び出しても true
を返さなければなりません。
null
が渡された場合は常に false
を返さなければなりません。
Object
クラスでは、同じオブジェクト同士(this == obj
)を比較した場合に限って true
を返すように実装しています。
obj
- 比較対象のオブジェクトを渡します。
true
を、等しくない場合は false
を返します。public String toString()
このオブジェクトの文字列表現を返します。
Object
クラスでは、オブジェクトのクラス名とハッシュコードを符号なし 16 進数で表現したものをアットマーク“@
”(\u0040) で区切った文字列を返します。
すなわち、返す文字列表現は以下の記述を行ったものと等しくなります。
getClass().getName() + "@" + Integer.toHexString(hashCode())
オブジェクトの文字列表現はテキストによってオブジェクトを表したもので、可読性があり有意義な情報を得られるものであるべきです。 全てのクラスにおいてこのメソッドをオーバーライドして実装することが推奨されます。
public final void notify()
このオブジェクトのモニターが待機させているいずれかのスレッドの実行を1つ再開します。
複数のスレッドが待機している状態でこのメソッドを呼び出した場合、どのスレッドが再開されるかは実装に依存します。
スレッドを待機状態にするためには wait(long)
メソッドを呼び出します。
このメソッドを呼び出すことができるのは、オブジェクトのモニターを所有するスレッドでなければなりません。 モニターを所有するには以下の方法があります。
synchronized
宣言されたインスタンスメソッドを呼び出す。
synchronized
文を実行する(Ex. synchronized(this);
)。
Class
オブジェクトの場合はそのクラスの synchronized
宣言されたクラス・メソッドを呼び出す。
再開したスレッドは、カレントのスレッドがオブジェクトのロックしつづける限り動作することはできません。 再開したスレッドがオブジェクトによる同期が必要な場合、他の競合する可能性のあるスレッドと通常の方法で競合します。 例えば、再開したスレッドがロックを獲得する順番待ちにおいて、不利にも有利にもなることもなりません。
なお、オブジェクトのモニターは1度に1つだけのスレッドが所有することができます。
このメソッドを呼び出したスレッドがモニターを所有していない場合は IllegalMonitorStateException
を throw します。
全てのスレッドを再開する場合は notifyAll()
メソッドを使用します。
IllegalMonitorStateException
- 呼び出したすレッドがオブジェクトのモニターを所有していない場合に throw します。notifyAll()
,
wait()
public final void notifyAll()
このオブジェクトのモニターによって待機中の全てのスレッドの実行を再開します。
スレッドは wait(long)
メソッドを呼び出すとオブジェクトのモニターの管理下で待機状態になります。
再開するスレッドが全てである点を除き、notify()
メソッドと同様です。
IllegalMonitorStateException
- 呼び出したすレッドがオブジェクトのモニターを所有していない場合に throw します。notifyAll()
,
wait()
public final void wait(long timeout) throws InterruptedException
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify()
メソッドまたは notifyAll()
メソッドが呼び出されるか、指定された時間が経過するまでその状態を継続します。
現在のスレッドはこのオブジェクトのモニタを所有していなければなりません。
このメソッドで現在のスレッド(以下それを T とする)は、このオブジェクトに設定された待機と、その時にこのオブジェクトのありとあらゆる同期クレームを放棄するための設定をします。 スレッド t は、目的のスケジューリングされたスレッドのために待機状態になり、以下の4つの事項の1つが発生するまでその状態を継続します:
notify
メソッドを呼び出すと、スレッド T は復帰対象として必要に応じて任意に選択します。
notifyAll
メソッドを呼び出した場合。
interrupt
)場合。
timeout
がゼロならば、時間は考慮されません。そして、スレッドは上記のいずれかが発生するまで待機します。
スレッド T は、この時にオブジェクトとスレッドのために再有効化のスケジューリングの待機リストから除外されます。
その後、オブジェクトにおける同期を行うための権利について通常通りに他のスレッドと競います;
いったんオブジェクトのコントロールを獲得すると、オブジェクトの全ての同期クレームが、wait
メソッド呼び出し以前の状態に復元します。
そしてスレッド T は wait
メソッドから処理を戻します。
したがって、wait
メソッドから処理が戻ると、丁度 wait
メソッドが呼び出されたときと同様に、オブジェクトとスレッド T の同期状態を復元します。
現在のスレッドが待機状態の時に、別のスレッドが割り込む(interrupt
)なら、InterruptedException
を throw します。
このオブジェクトのロック状況が上記で説明したとおりに復元されるまで、この例外は throw しません。
wait
メソッドは、現在のスレッドをこのオブジェクトの待機セットに加え、このオブジェクトだけのロックの解除することに注意してください;
現在のスレッドと同期を取るかもしれない、いかなる他のオブジェクトもスレッドが待機状態にあるときにロック状態が継続しています。
このメソッドはこのオブジェクトのモニタ所有者であるスレッドによってのみ呼び出すことができます。
スレッドがモニタの所有者になるための方法の説明は notify
メソッドを参照してください。
timeout
- 待機する時間をミリ秒で指定します。
IllegalArgumentException
- 待機する時間に負数が指定された場合に throw します。
IllegalMonitorStateException
- 呼び出したスレッドがモニターを所有していない場合に throw します。
InterruptedException
- いずれかのスレッドが現在のスレッドに割り込んだ場合に throw します。この例外が throw されると、現在のスレッドの割り込みステータスはクリアされます。notify()
public final void wait(long timeout, int ns) throws InterruptedException
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify()
メソッドまたは notifyAll()
メソッドが呼び出されるか、指定された時間が経過するまでその状態を継続します。
このメソッドは1つのパラメータの wait
メソッドと同様ですが、それはタイムアウトまでのより細かい制御を可能にします。
数ナノ秒に単位の待ち時間量は以下のように与えます:
1000000*timeout+nanos
他の全ての点について、このメソッドは1つのパラメータの wait
メソッドと同様です。
特に、wait(0, 0)
は wait(0)
と同じ事を意味します。
現在のスレッドはこのオブジェクトのモニタを所有していなければなりません。 スレッドは、このモニタの所有権を手放し、以下の2つの条件のいずれかが発生するまで待機します。
notify
メソッドまたは notifyAll
メソッドを呼び出した場合。
timeout
ミリ秒と nanos
ナノ秒で指定した時間が経過した場合。
モニタの所有権を再取得し実行を再開するその時まで、スレッドは待機します。
このメソッドはこのオブジェクトのモニタ所有者であるスレッドによってのみ呼び出すことができます。
スレッドがモニタの所有者になるための方法の説明は notify
メソッドを参照してください。
timeout
- 待機する時間をミリ秒で指定します。ns
- 追加で待機する時間をナノ秒を 0
から 999999
の範囲で指定します。
IllegalArgumentException
- 待機する時間に負数が指定された場合およびパラメータ ns
が 0
〜 999999
の範囲外の場合に throw します。
IllegalMonitorStateException
- 呼び出したスレッドがモニターを所有していない場合に throw します。
InterruptedException
- いずれかのスレッドが現在のスレッドに割り込んだ場合に throw します。この例外が throw されると、現在のスレッドの割り込みステータスはクリアされます。public final void wait() throws InterruptedException
現在のスレッドを待機状態にし、他のスレッドからこのオブジェクトの notify()
メソッドまたは notifyAll()
メソッドが呼び出されまでその状態を継続します。
このメソッドは1つのパラメータの wait
メソッドを wait(0)
のように呼び出すことと同様です。
現在のスレッドはこのオブジェクトのモニタを所有していなければなりません。
このオブジェクトのモニタを持っている他のスレッドが、スレッドに通知するために notify
メソッドまたは notifyAll
メソッドを呼び出すまで待機します。
モニタの所有権を再取得し実行を再開するその時まで、スレッドは待機します。
このメソッドはこのオブジェクトのモニタ所有者であるスレッドによってのみ呼び出すことができます。
スレッドがモニタの所有者になるための方法の説明は notify
メソッドを参照してください。
IllegalMonitorStateException
- 呼び出したスレッドがモニターを所有していない場合に throw します。
InterruptedException
- いずれかのスレッドが現在のスレッドに割り込んだ場合に throw します。この例外が throw されると、現在のスレッドの割り込みステータスはクリアされます。notify()
,
notifyAll()
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |