- 2009-12-06 14時〜18時
- クイズとして1問printAllを出題。
- 読書会では第4章「クラスとインターフェイス」から項目13「クラスとメンバーへのアクセス可能性を最小限にする」が中心。
- 特に熱かった話はクラスとインスタンスの関係、静的と動的の関係例えばクラスフィールドとインスタンスフィールドの違いは何か、アクセス修飾子をオーバーライド時には狭めることができない理由、継承による"is a"関係、Object.clone()の妙な振る舞い、フィールドへのマルチスレッドアクセス時に意図しない挙動が起こり得る、など。
- 出題のprintAll。このコードは特にJavaである必要はなく、実効性能も度外視でforやwhile、String Join系のライブラリも使わずにネイティブだけでできるかな?
package jp.hutcraft.nazo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PrintAll {
public static void main(String[] args) {
List<String> words =
new ArrayList<String>(Arrays.asList(new String[]{
"all", "your", "base", "are",
"belong", "to", "us"}));
printAll(words);
}
private static void printAll(List<String> words) {
// ↓これをforを使わずに同じ動作をするように書く
// for (String s : strings) {
// System.out.println(s);
// }
}
}