javaでデザインパターンを書いて手を動かそう#5をやりました。

  • staticの初期化がわかってませんでした。
  • import時には、static fieldは初期化しません。
package s;

public class Singleton {
    private static final Singleton s;
    // staic 初期化子
    static {
        s = new Singleton();
    }
    // コンストラクタ
    private Singleton(){
        System.out.println(" -- generate  --");
    }   
    // staticのmethod
    public static Singleton getInstance(){
        return s;
    }   
}
import s.Singleton;

public class Main2 {
    public static void main(String[] params){
        System.out.println("start");
        Singleton.getInstance();
    }   
} 
  • callする
  • import時ではなく、static method時に呼び出される。
  • もしくは、そのクラスのインスタンスが生成されたとき。
  • 詳しくは、参考サイトを参照願います。
toenobu:singleton xoxopanda$ java -Dfile.encoding=UTF-8 Main2
start
-- generate  --

参考サイト

次回の受付はこちら

Read and Post Comments

javaでデザインパターンを書いて手を動かそう(1回目)をやりました。

  • vimで書いてましたが、eclipseがいいなーと思いました。
    • それでも、vimで書き続けようと思いましたけれども!
    • mistypeに、目grepで気づけないけれども!
  • mac book airを持って行ったのですが、javacの標準エラー出力が文字化けします。
    • 以下の実行時オプションで回避できます。
    • javac -J-Dfile.encoding=UTF-8
    • java -Dfile.encoding=UTF-8
    • -Jの役割は何だろう?外したら、エラーでたけれども!
  • java脳でない人は、以下のコードがわかりづらいかも?
public Iterator iterator(){
     return new BookShelfIterator(this);
}
  • chain method を思い出せば大丈夫。
class Chain{
        // thisを返す
        public Chain write(String s){
                System.out.println(s);
                return this;
        }
        // 呼び出し元
        public static void main(String[] ps){
                Chain c = new Chain();
                c.write("foo").write("bar").write("toenobu").write("peepingTom");
                //thisは自分のことを指していることがよくわかるとよ。
        }
}
  • callする
toenobu:iteraotr xoxopanda$ java Chain
foo
bar
toenobu
peepingTom

次回の受付はこちら

Read and Post Comments

javaでデザインパターンを書いて手を動かそう(0回目)をやったった。

  • 増補改訂版Java言語で学ぶデザインパターン入門をやる
  • The Good Partsは、手を動かせないようなので、現時点でやらない
  • 場所は、暫定的にノマドクロス天神
    • コスト高なので、もっと安くしたいなー
    • 一度、コスタも使ってみよう
  • 時間は、暫定的に16:00 - 18:00 にする
  • 一回につき、2章進んで行く。
    • 30分で書いて、30分は各自疑問点を出して解決する
  • こんなの がなんとなく理解できていればいいかと。

次回の受付はこちら

Read and Post Comments