タグ

oopに関するcu39のブックマーク (71)

  • Rubyのトップレベルのメソッドの不思議 : As Sloth As Possible

    トップレベル(モジュールやクラスの外)でメソッドを定義するとどうなるでしょうか??トップレベルでは、メソッドを定義するとデフォルトで private なメソッドになるので注意です。 01.#!/usr/bin/ruby 02. 03.p self.class # Object 04.p self # main 05. 06.cmethod = self.class.private_methods 07.imethod = self.private_methods 08. 09.def bar 10. puts "bar method" 11.end 12. 13.p self.class.private_methods - cmethod # ["bar"] 14.p self.private_methods - imethod # ["bar"] 見ての通りですが、なぜかインスタンスメソ

    Rubyのトップレベルのメソッドの不思議 : As Sloth As Possible
  • 結局、Rubyの特異メソッドって何なの? - (゚∀゚)o彡 sasata299's blog

    2010年10月27日11:09 Ruby 結局、Rubyの特異メソッドって何なの? 今日は 特異メソッド について理解を深めるために書いてみます。説明の中にメソッドが色々出てきてややこしいですが、このルールで使っています。m(_ _)m c_method # クラスメソッド e_method # 特異メソッド i_method # インスタンスメソッド 特異メソッドっていうのは、オブジェクト固有のメソッドです。あるオブジェクトにはあるけど、同じクラスの別のオブジェクトにはそのメソッドは無い、みたいなメソッドですね。 class MyClass; end obj = MyClass.new obj2 = MyClass.new def obj.e_method puts "e_method called" end obj.e_method # e_method called obj2.e_

  • 言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー

    言語女子会: undefとnullは両方必要?の続編です。 varは必要なの? とあるプログラミング言語が集う女子会にて: Python: JavaScriptちゃんってさ、なんでvarだらけなの? JavaScript: えっ、変? Python: varなんかいらなくない?私ぜんぜん持ってないよ? JavaScript: えー、じゃあ変数をどうやって宣言するの? Python: 宣言っていうか…「x = 1」みたいな代入文があれば変数xが必要なのって自明じゃない?宣言とか必要? Ruby: 必要ないよね。っていうか変数宣言とか古臭くない? JavaScript: そうかなー。 Python: 少しダサイかも。ほら断舎離ブームだし要らないものは捨てなきゃ! JavaScript: 要らないかなぁ、変数宣言。Pythonちゃんは関数がネストしているときに外側のスコープの変数に代入するのって

    言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー
  • PHP classの教室

    PHPで関数は使えるけれどオブジェクト指向はよくわからないという人向けの勉強会の資料です。 Ustream録画 (1/5) http://www.ustream.tv/recorded/21256905 67分 (2/5) http://www.ustream.tv/recorded/21253084 80分 (3/5) http://www.ustream.tv/recorded/21254139 60分 (4/5) http://www.ustream.tv/recorded/21254817 24分 (5/5) http://www.ustream.tv/recorded/21255084 6分

    PHP classの教室
  • mapee.jp

    This domain may be for sale!

  • 続PHPのアクセサ - CODE NAME: TUNE34

    ここ1ヶ月はバタバタしててブログを書く事ができませんでした。書くネタがないというのもありますが、時間をつくってブログを書き続けるというのは当に難しいですね。でも少しずつでも何かアウトプットしないとなあ。。 それで最近はてなブックマークなどをよく見るようにしているのですが、そこで感じるのはPerlコミュニティの活発さです。例えばアクセサやmixinなどPerlでのオブジェクト指向プログラミングを支援する為の「Moose」というモジュールの使用がトレンドだと紹介されれば、呼応するように多くのブログで言及されていたりします。 一方、私がメインで使用している同じLL言語のPHPでもPHP5から格的なオブジェクト指向プログラミングが出来るようになっていますが(PHPのアクセサは以前このブログでも取り上げました)、今回はちょっと「Moose」の真似をしてみてPHPでも「読み書きの制御」と「型定義」

    続PHPのアクセサ - CODE NAME: TUNE34
  • PHPのアクセサ - CODE NAME: TUNE34

    今個人で開発する時用に自作のフレームワーク(ライブラリ)を作っていますが、PHPのアクセサの実装にどういう方式があるのかまとめてみました。 (1)PHPのビルトインクラスである「stdClass」を使う方法 「stdClass」は標準クラスとして用意されているオブジェクトで、連想配列のように扱えるオブジェクトとみなしていいようです。 <?php //利用例 $foo = new stdClass(); $foo->Bar = "ほげ"; echo $foo->Bar; //string(4) "ほげ" 読み取り専用のフィールドや、値のset/get時に加工してセットしたり取得したりする事がそのままでは実現できませんが、非常に簡便でかつオブジェクトの疎結合というメリットも活かせる方法です。 (2)setter/getterメソッドを個別に作成する方法 最もベーシックな実装方法といっていいでし

    PHPのアクセサ - CODE NAME: TUNE34
  • 和訳 : なぜPythonのメソッドに明示的にselfと書かねばならないのか

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

  • http://hmdt.jp/oop/methodAddition.html

  • xingxx - Ruby :: ActionScript 3.0 とRubyの定義を見比べる - クラス編

    日にちびちびとRubyを触ってます。そんな備忘録。 今回はAS3とRubyのクラス定義について見比べてみましょう。 まずはおなじみのAS3のクラス定義です。class定義キーワードを使って、TestClassを定義します。クラス定義にあたってのポイントを列挙します。 ファイル名とクラス名は一致しなければならない。 定義範囲は{}で決定。 パッケージ アクセス制御指定子を省略した場合は、クラス、インスタンス変数・メソッドは自動的にinternalとなる。コンストラクタはpublicに設定される。 変数にはvar宣言を付けなければならない。 変数・定数・引数・戻り値には型を付けることが推奨されている。 package { class TestClass{ var name:String; function TestClass(name:String):void { this.name = na

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Moose - Perl5のためのまったく現代的なオブジェクトシステム

    NAME SYNOPSIS CAVEAT DESCRIPTION 別のオブジェクトシステム!?!? これを製品に使えますか?それとも実験段階でしかありませんか? MooseはPerl 5におけるPerl 6に過ぎませんか? BUILDING CLASSES WITH MOOSE EXPORTED FUNCTIONS UNEXPORTING FUNCTIONS unimport MISC. What does Moose stand for?? CAVEATS ACKNOWLEDGEMENTS SEE ALSO BUGS AUTHOR COPYRIGHT AND LICENSE DOCUMENT TRANSLATION Page Top NAME Moose - Perl5のためのまったく現代的なオブジェクトシステム Page Top SYNOPSIS package Point; use

    cu39
    cu39 2009/10/05
    そろそろやろうかなと。
  • Mouse 0.31 - Islands in the byte stream (legacy)

    Mouseのco-maintainerになりました。 しばらくは主に互換性を上げるメンテナンスをし,その後Moose::XSのプロトタイプとしてのMouse::XSの実装に入ります。 0.31までにやったこと(Moose 0.90 compatible): has()においてis => 'bare'をサポートするとともに,アクセサの省略に対して警告するようになりました has()において,accessor/reader/writerが認識されるようになりました with $role => { -excludes => [...] }が動くようになりました Mouse::Utilでfind_meta()とdoes_role()をインポートできるようになりました 他,細かな挙動がMoose互換になっています

    Mouse 0.31 - Islands in the byte stream (legacy)
  • why java is not pure object oriented? | Java

  • 初心者でも使えてプログラマでも困惑するJavaScript - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日に続いてJavaScriptネタ。 JavaScriptは誰でもすぐ使えるように工夫されている -- これは嘘ではないでしょうが、最初の敷居が低いから「やさしい」とは言えないようです。僕自身と少数の事例からは、C、C++Javaなどの“普通の”言語に慣れていても、JavaScriptには違和感・抵抗感を感じて、わず嫌いで手を出さないとか、かじったが放り投げるとか、… どうも「むずかしい」みたい。 実行環境が主にブラウザというのがまず異質ですが、この点は置いといて、言語仕様と言語処理系の観点から、JavaScriptの「むずかしさ」(と魅力)を述べたいと思います。 ●徹底的にオブジェクト的 JavaScritは、クラス、継承、情報隠蔽機構などを持たないので、まがい物の、あるいは中途半端なオブジェクト指向言語と思われているようです。そもそも、「何がオブジェクト指向か」って議論が不毛だか

    初心者でも使えてプログラマでも困惑するJavaScript - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • JavaScriptの実験:高階関数、mixinなど - 檜山正幸のキマイラ飼育記 (はてなBlog)

    最近、JavaScript人気がすごいなー。1年前には(少なくとも僕は)想像もできなかった事態です。 「ブラウザのなかで動く奇妙な言語」という印象しか抱いてなかったのですが、ナカナカのもんみたいですね。遅ればせながら実験。ブラウザだと試行錯誤やデバッグに向かないから、Rhinoの対話的環境でやってみました。 まずは、ラムダ式風の関数定義、可変(個数)引数、高階関数などの見として関数totalを定義してみました。僕の意図としては、関数totalのプロファイル(型仕様)は: (number | number[]), (number -> number), (number -> boolean) → number これを言葉で説明すれば: 第1引数は、数値 または 数値の配列 第2引数は、1つの数値引数を取り数値を返す関数 第3引数は、1つの数値引数を取り真偽値を返す関数 戻り値は、数値 さら

    JavaScriptの実験:高階関数、mixinなど - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)

    ジジイの手習いで、JavaScriptを勉強中でございます。その動機は「結局、ブラウザベースRIAかよ」のようなこと。非ブラウザベースのリッチクライアントへの期待を失ってしまったんですね。短期的・現実的な策としては、Ajax的な手法によるRIAなのかなぁ、という気分。ただし、「短期的」が“1年”と“5年”ではえらい違いです。今のところ僕には、「短期的」の実際の期間はわかりません。 僕のJavaScript調査の結果は、「初心者でも使えてプログラマでも困惑するJavaScript 」などに書きました。これらの続きとして、「プログラマのためのJavaScript (*)」というタイトルで書こうかと予定してます。あくまで予定、気まぐれでモノグサな僕のことだから、…… “プログラマのための”というのは、C, C++, Java, C#など“普通の”プログラミング言語にある程度慣れていることを前提に

    檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)
  • JavaScriptの関数オブジェクトを完璧に理解する - builder by ZDNet Japan

    前回までのおさらいと今回のあらすじ 前回は、thisキーワードについて深く解説しました。関数内で使用する「this」は、状況に応じて様々に変化する可能性がある、というお話でしたね。 これでやっと、JavaScriptの関数が持つ様々な機能を説明するための前提知識が整いました! JavaScriptの関数については、当連載でも一度取り上げています。JavaScriptの関数は、単なる手続きの単位ではなくオブジェクトの一種なのだ、と言うことを取り上げたトピックでした。 そう、JavaScript関数の実体は、Functionクラスのオブジェクトです。Functionクラスには、関数を操るための様々なメソッドやプロパティが存在します。今回は、それらを網羅的に解説するとともに、関数内でのみ使用可能な「arguments」オブジェクトについてもお話ししたいと思います。 Functionクラスのメンバ

    JavaScriptの関数オブジェクトを完璧に理解する - builder by ZDNet Japan
  • 駄文 - JavaScript と「クラス」と「コンストラクタ」と「プロトタイプ」って言葉の定義が難しいよなあ - IT戦記

    このエントリを見てて思ったんですけど JavaScript関数の実体は、Functionクラスのオブジェクトです。今回はFunctionクラスの機能を網羅的に解説します。 JavaScriptの関数オブジェクトを完璧に理解する - builder by ZDNet Japan 「Function クラスのオブジェクト」って言いますよねー。 僕もそういう風に言ったりするんですけど、当は微妙ーに違うんですよね。 でも、そんな細かいことを言っていてもしょうがないので、やっぱり「Function クラスのオブジェクト」って言うんですけど。 なんか、良い言い方ないかなあ。 Function.prototype を継承する、内部メソッド [[Call]] を持つオブジェクト Function コンストラクタを new することによって作られるオブジェクト いや、そもそも 関数って 内部メソッド [[

    駄文 - JavaScript と「クラス」と「コンストラクタ」と「プロトタイプ」って言葉の定義が難しいよなあ - IT戦記
  • タイプ・クラス・プロトタイプ - 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