タグ

OOに関するhorihorioのブックマーク (10)

  • オブジェクト指向プログラミングの教え方? | システム設計日記

    技術者仲間で話していたら、4月入社の新人に、オブジェクト指向プログラミングをどうやって教えたらよいか?、という話になった。 想定している言語は Java。 ■動物・犬・モデルの説明から ■基用語の説明から:「カプセル化とは」「継承とは」... ■サンプルコードから: System.out.println( "hello world" ) ... どのパターンでもうまくいかなかったので、今度の新人研修では何か工夫したいね、という話。 結論から言うと「これだ」というアイデアがでたわけではないが、話の内容は、いろいろ興味深かったのでメモ書き。 Java はオブジェクト指向の言語なの? Java は、ある意味 C言語の仲間。ある側面はほとんど同じ言語。 ・int, long (プリミティブなデータ型) ・配列操作 ・if/for/return ここだけ見れば、C言語のまま。つまり命令型、手続き

  • OO in R

  • S4クラス用のgeneric関数でキャッシュを実現する方法を考える - hotokuとは

    概要 Rが常に値渡しであるために関数の返り値のキャッシュをオブジェクトの中に素直に持てなくて困ったので解決法を考えた。 背景 ある特定のオブジェクトを引数として、もの凄く重たい関数が何回も呼ばれるとする。毎回真面目に計算するのはしんどいので、初回呼び出し時だけはちゃんと計算してその計算結果をオブジェクトの中にキャッシュとして残しておいて、2回目以降はキャッシュを返すだけにしたい。 上手く行かない例 setClass("NotCachedClass", representation(is.cached="logical", cached.value="POSIXct")) setMethod("initialize", "NotCachedClass", function(.Object, ...){ .Object@is.cached <- FALSE .Object }) setGene

    S4クラス用のgeneric関数でキャッシュを実現する方法を考える - hotokuとは
  • 群の叡智 - ガロア理論を知るための三作 : 404 Blog Not Found

    2010年08月23日22:30 カテゴリ書評/画評/品評Math 群の叡智 - ガロア理論を知るための三作 技術評論社成田様より献御礼。 天才ガロアの発想力 小島寛之 『天才ガロアの発想力』出ました! - hiroyukikojimaの日記 「意欲的な中学生なら理解できるぜ」を目標に書いた ガロアが「自分終了のお知らせ」の前に「あれ」を見つけたのは、まだ10代の頃。 天才の業績を再現するのに天才である必要は必ずしもない。ニュートン力学だって高校生で習うではないか。さすればガロアの理論だって中学生に理解できるように再構成できるはずである。 書は、それをやった。 とはいえ、物足りなさもあるのでentryではさらに二冊紹介することにする。 「天才ガロアの発想力」は、ガロアが「あれ」をどう解いたのかを説いたとしては、おそらく現時点で世界一簡潔な一冊。 目次 - 書籍案内:天才ガロアの発想

    群の叡智 - ガロア理論を知るための三作 : 404 Blog Not Found
  • タイプ・クラス・プロトタイプ - OOの語彙 : 404 Blog Not Found

    2008年04月13日06:00 カテゴリLightweight Languages タイプ・クラス・プロトタイプ - OOの語彙 その違いは微妙というにはあまりに大きいので、ここでおさらい。 駄文 - JavaScript と「クラス」と「コンストラクタ」と「プロトタイプ」って言葉の定義が難しいよなあ - IT戦記 JavaScript関数の実体は、Functionクラスのオブジェクトです。今回はFunctionクラスの機能を網羅的に解説します。 JavaScriptの関数オブジェクトを完璧に理解する - builder by ZDNet Japan 「Function クラスのオブジェクト」って言いますよねー。 僕もそういう風に言ったりするんですけど、当は微妙ーに違うんですよね。 Type(型)って何? まず、タイプ=型から説明しよう。 型というのは、「どんなデータを、どう置くか」の

    タイプ・クラス・プロトタイプ - OOの語彙 : 404 Blog Not Found
  • C/C++クイックスタート:言語概要 - builder by ZDNet Japan

    身近な改善の第一歩! ニューノーマルな働き方を前提にした これからの時代のWi-Fi環境構築のポイント オープンソース活用はあたりまえ! そんな今だからこそ改めて考える 企業ITにおけるOSS活用のメリットとリスク さあ、その想いをカタチにしよう。 Google Cloud が企業の未来に向けた生産性 向上とコラボレーション実現のヒントを解説 激変するビジネス環境の中でのDX モダンアプリケーション戦略への取り組みが 市場の競争力の源泉となる 今を知り、未来を見据える 培ってきたノウハウを最新技術へ対応させる レガシーシステムのモダン化実現への道 ともにDXを推進する コンテナ化されたワークロードを管理 継続的な価値を生みだす「協創」への挑戦 特集:IT最適化への道 成功の秘訣をその道のプロが解説 カギとなるのはシステムの「見える化」 自社利用の知見・経験を顧客に提供 コンテナ活用を推進す

    C/C++クイックスタート:言語概要 - builder by ZDNet Japan
  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

  • 小説家と神様と天才と宗教 - かえるの開発工房

    「生きてきた私」を言祝ぐ技術 極端に幸福な、あるいは不幸な人生を送った人には「系の中で、あなたのニッチはユニークでした。 あなたが自分の人生をどう感じたのかは、私の知ったことではありませんが」 ほどほどの人生を送った人には「あなたの代わりはいくらでもいますから、世の中何も変わりません。 安心して下さい。そんな絶望は、周囲のみんなに共有されているものですから」 神様が科学的な存在ならば、亡くなる人に神様が語る言葉は、たぶんこんなかんじ。 科学技術は、人がより楽になるために発達してきた。 より長く生きるため。苦痛を感じないため。 いろんな技術が発達したけれど、楽になるはずの技術が実際にやってきたのは、 「解決」でなくて「先送り」。 帳尻合わせは最後の最後でやってきて、亡くなる時にはもう滅茶苦茶。 神様と小説家の視点は似ている。自分が神様だったら、やっぱり同じ視点。スタンダードは見飽きてしまって

    小説家と神様と天才と宗教 - かえるの開発工房
  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
  • 404 Blog Not Found:perl - 万能なnewの書き方

    2007年04月23日22:45 カテゴリLightweight Languages perl - 万能なnewの書き方 Perl 5のOOは、慣れてしまうと簡単だ。 継承とか考えずに、普通にクラスを作りたければ、必要なのは以下の二行だけ。 package Klass; sub new { bless {} }; これだけでは何もできないので、とりあえずnameというアクセサーを追加してみる。これだけ。 sub name { my $self = shift; $self->{name} = shift if @_; return $self->{name}; } しかし、上の形式だと、継承をサポートしていない。だから、 package Klass; sub new { bless {} }; package Klass::Sub; our @ISA = qw/Klass/; # new

    404 Blog Not Found:perl - 万能なnewの書き方
  • 1