忍者ブログ
継承ってどういう時にするの?
Javaにおいてクラスは単一継承しか出来ないため
継承は慎重に行わないと・・・
後で継承したくても出来ないってことに・・・

インターフェイスは多重継承が出来るから・・・
クラスの継承ではなくインターフェイスの実装で出来ないか考える
例えば
スレッドは継承ではなくRunnableやCallableの実装で・・・

ではどのような時に継承したらよいのだろうか???
継承すると言うことは・・・
サブクラスはスーパークラスとしても振舞わなければならない
is-aの関係である

サブクラスis a スーパークラス

良く似た関係にhas-aの関係がある
こちらは他方のクラスを包含している場合である

例えば旅行に行くプロジェクトがあった場合
移動手段には自動車、バス、電車、飛行機などがある

これらの共通点として
乗り物であるタイヤがある等が考えられる

乗り物がis-aの関係でありタイヤがhas-aの関係である

自動車 is a 乗り物
自動車 has a タイヤ

同様にis-aの関係として
旅行と国内旅行、海外旅行、温泉旅行、日帰り旅行などが考えられる

is-aの関係の中でも特に結び付きの強いものを厳選して
継承するのが良いと考えられる
PR
【2006年11月25日22:40 】 | Java | コメント(0) | トラックバック()
<? extends T>や<? super T>って何?
APIリファレンスで<? extends T>や<? super T>が出てくる時がある
中には両方同時に出てくることも・・・^^;

java.util.Collectionsの中には・・・
public static<T> int binarySearch(List<? extends Comparable<? super T>> list, T key)

Comparable<? super T>>はクラスTまたはそのスーパークラスに関する
比較を行うためのインターフェイスであり
List<? extends Comparable<? super T>>はそのインターフェイスを実装した
クラスまたはそのサブクラスを格納できるリストを意味する

<? super T>はクラスTとそのスーパークラスを
<? extends T>はクラスTとそのサブクラスを表す
【2006年11月15日22:11 】 | Java | コメント(0) | トラックバック()
strictfpって何?
小数の演算結果が手計算と合わない・・・TT
桁数が少なければ整数として計算してしまうのだが・・・^^;
BigDecimal を使えばいいんだけど・・・

strictfp というクラス、インターフェース、メソッド修飾子がある
strictfp で修飾されるとその内部すべての式が FP-strict になる

FP-strict とは IEEE-754 で定められた精度である
FP-strict でない場合より高い精度で演算が行われる可能性がある
(x86プロセッサでは80ビットで行う)

float:符号1ビット 指数8ビット 仮数23ビット
double:符号1ビット 指数11ビット 仮数52ビット
x86拡張精度:符号1ビット 指数15ビット 仮数64ビット
【2006年11月14日20:56 】 | Java | コメント(0) | トラックバック()
synchronized と volatile の役割って?
排他処理には synchronized を用いればよいが・・・
volatile ってなんだろう???

スレッド処理を含むクラス群をコンパイルした時に
どちらかで修飾してくれというエラーメッセージが出る時がある

これはスレッドがフィールドをスレッド固有の作業領域に
コピーして処理を行い・・・その後フィールドに戻すのためで

タイミングによっては値が保証されないため
コンパイル時に警告しているのである

そのため synchronized で立ち入り禁止にしてしまうか(メソッド、ステート)

volatile で修飾しスレッド間の作業領域として
共有のフィールドを使用するよう宣言するのである(フィールド修飾子)
【2006年11月11日21:53 】 | Java | コメント(0) | トラックバック()
Javaのココロ・・・
Javaのココロ
読書の秋ということで・・・
図書館で借りてきました^^

まだまだ女心を・・・もといJavaの心を理解してないですね・・・;;

ArraySizeを2のべき乗にすると遅くなるとか
(CPUのキャッシュの関係で・・・)
四則演算よりシフト演算の方が速いなど・・・

誤解していた部分もあって・・・
Javaに嫌われても仕方なかったですね・・・TT
これからも頑張るので愛想尽かさないでね^^
【2006年11月06日22:28 】 | Java | コメント(0) | トラックバック()
前ページ| ホーム |次ページ

忍者ブログ [PR]