タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Javaとオブジェクト指向に関するchitoku_kのブックマーク (2)

  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • 「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で

    きっかけ こんなツイートがRTで流れてきた。 Java技術者です、って求職してきた人にする質問の一問目は 「なぜフィールドはprivateにしてgetter/setterプロパティを書くべきなのだと思いますか?」 がいいのではないかと思い始めた。— ゆば大好き (@yuba) 2014, 9月 26 そのとき思ったこと 「変数をプライベートにして、それに対してアクセサを定義する」っていうのはちょっと違う気がする。— S.Osa (@osa522) 2014, 9月 26 「外部に公開するインターフェイスを決定して、そのために必要な変数をプライベートで保持する」っていう感じ。— S.Osa (@osa522) 2014, 9月 26 変数ありきなのではなく、インターフェイスありき。 インスタンスが持っている変数は実装の詳細であって、そのインスタンスのメソッドを呼び出す側からするとどうでも良い

    「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で
  • 1