タグ

oopに関するSixeightのブックマーク (3)

  • Rubyのブロック引数渡しをJavaでやると - enterprise java programmer

    Rubyではメソッドにブロックを渡すとクロージャ(Closure)を構築できます。 Enumerableクラスのdetectメソッドを例として見てみましょう。 ちなみにdetectはブロック内の条件式が初めて真となった際に配列の要素を返します。 array = (1..10).to_a p array.detect {|e| e >= 5} →5を返す。 ちなみにJavaにこのクロージャの機構はありません。Java7で導入が検討されていたようですが、残念ながら見送りになりました。 とはいえ現状のJavaでも無名クラスを使うことで「クロージャっぽいこと」はできるのです。 まずクロージャ用interfaceを用意します。detectを再現するために戻り値をbooleanにします。 public interface ConditionalClosure <T> { boolean execute

    Sixeight
    Sixeight 2009/06/28
    こういうのをさくっと書けるようになりたい
  • オブジェクト指向と時間・空間

    Last update 1999/08/07 オブジェクト指向と時間・空間 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 時間は有限か? かつて哲学においてよく議論の対象とされた問題に、 「時間は有限か?」 というものがあります。この命題に対するカントの答えは明快で、 「有限とか無限とかいうものではない」 というものです。 同じようによく質問された問題に、 「空間は有限か?」 というものがあります。この命題に対してもカントは明確に答えます。 「有限とか無限とかいうものではない」 と。 それは詭弁ですか? カントの答えは果たして詭弁なのでしょうか。もちろんそうではありません。 彼の答えを理解するには、まず質問の意味を正しく理解しなければなりません。そして、われわれが命題に対してしばしば抱く偏見を取り除かなければなりません。 その偏見とは、いったい何なのでしょうか。 そ

    Sixeight
    Sixeight 2009/06/13
  • INHERITANCE

    OOPへの道 世間のプログラマのみなさんは、OOPを学ぶ際、 どんな経路で勉強されているんでしょうね? ま、今時はJavaから入る人が多いのでしょうけど、 私がOOPに触れた頃は、まだ「これからはC++だ!!」という時代で、 でもオブジェクト指向自体の解説書はSmalltalk使ってたりして、 C++の方はといえば、著者からして、 こいつクラスとインスタンスの区別が付いてないんじゃないの? というレベルのが溢れてたりしました。 んで、しょうがないのでSmalltalkをベースにしたなんか読んでると、 「オブジェクト指向プログラミングでは、 オブジェクトが相互にメッセージを受け渡して、 協調動作しながらプログラムが実行される」 なんてことが書いてあったりして、 ふむふむ。オブジェクトが相互にメッセージを受け渡しすることにより プログラムが実行される、ということは、 オブジェクト指向では

    Sixeight
    Sixeight 2009/06/10
    おもしろい(半分くらいしか理解できなかったけど)
  • 1