毎月開催しているJava読書会において、朝の開始前1時間の枠で「ズームインJava」を実施しています。先月からはズームインJavaではこの本が課題となっています。
- 作者: Robert Simmons Jr.,福龍興業,佐藤直生,木下哲也,石井史子
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/10
- メディア: 単行本
- 購入: 10人 クリック: 157回
- この商品を含むブログ (82件) を見る
今月のJava読書会は明日開催です。「ズームインJava」では1時間しかないので、普通に本を読んでいてはちっとも進まないので、今回はレジュメを作成してみました。
1.2.4.3 ラベル break文、continue文で使用する。 <この節、コード及び説明に大量のエラッタ有り> continue文のラベルは、for, while, do文に付いたもののみ有効 「ラベルは原則的には使用しないことを推奨」 1.2.5 assert 2つの形式あり。 assert(args.length > 0); assert(args.length > 0) : "引数の数が0です。"; アサーションか例外か? チェックコードの処理がオーバーヘッドに。アサーションなら無効にできる(性能向上) 1.2.5.2 アサーションを使う基準を提示 ほぼSunの提唱する内容といっしょ ※検査例外は業界では異論が多い IBM developerWorksの記事「Javaの理論と実践:例外をめぐる議論」 Bluce Eckelの記事 "Does Java need Checked Exception ?" 1.2.5.3 開発・テスト時はアサーションを有効にする。運用時は初期は有効に、エラーが取れてきたら無効に 1.2.6 コンストラクタの連結 パラメータのバリエーションが複数あるコンストラクタで、コードの冗長記述を防ぐイディオムを紹介 コンストラクタの中でthis()を使って処理を一元化 thisは最初の行でのみ使用可、複雑な引数の設定はヘルパメソッドを使うとよい 1.2.7 初期化 インスタンス・フィールドの宣言行での初期化 ※p.29の例は初めて見た! クラス・フィールドの初期化 初期化子の処理は記述順番に行う・・・「不正な順方向参照」バグ 1.3 アクセス関連の問題 1.3.1 属性はprivate、公開メソッドはpublic、ヘルパメソッドはprotectedにする。派生して再利用を可能にするため 1.3.2 フレンドインスタンス(同じクラスの異なるインスタンス)は、無制限でアクセスできてしまう フレンドインスタンスのフィールドは、設定メソッドを介して変更する 自分自身のフィールドも、設定メソッドを介して変更すべし 1.4 よくある間違い 1.4.1 常にコンソール(System.out)があるとは限らない printStackTrace()だけでなく、例外を再スローし、例外連鎖を使おう ロギングを使うとよい 1.4.2 System.exitは危険、使うな。どうしても使うならmainメソッドの中に限定。 1.4.3 if文、switch文、デフォルト実行は止めて、条件分岐にきちんと条件を示す。最後のelse、default句では、エラー(assert)を発行する