ログイン
編集不可のページディスカッション情報添付ファイル
"alstamber/2013FreshManRubySeminar4"の差分

MMA
4と6のリビジョン間の差分 (その間の編集: 2回)
2013-05-02 17:50:24時点のリビジョン4
サイズ: 1160
編集者: alstamber
コメント:
2013-05-22 11:55:33時点のリビジョン6
サイズ: 2407
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 5: 行 5:
 * 2013年度新入生向けRuby講習会の第3回向け資料です。  * 2013年度新入生向けRuby講習会の第4回向け資料です。
行 9: 行 9:

== オブジェクト指向 ==
プログラムをオブジェクトの集合であり、オブジェクト同士が相互に関わりあう事で動作するものと捉え直す考え方。

=== オブジェクトとは ===
プログラムにおけるデータとそれを処理するコードを一かたまりのものとしてみなした概念。

=== プログラムをオブジェクト指向で書く利点 ===
プログラムを複数の固まりに分割することができます。これによって大きなプログラムをより小さな対象に分けて作ることができるようになります。<<BR>>
よって大規模なプログラムを作りやすくなります。

また同じようなことをしているコードを使いまわすことがやりやすくなる。これによって同じようなコードを何度も書かなくて良くなります。
{{{#!highlight ruby
"hoge".reverse #=> "egoh"
}}}
上の例は文字列を逆転させる処理をreverseメソッドにやらせた例です。<<BR>>
文字列を逆転させるような処理をわざわざ書かなくてもすでに作られている文字列を逆転させる処理を使えば良くなるのですごく楽です。

なにこれ

オブジェクト指向

プログラムをオブジェクトの集合であり、オブジェクト同士が相互に関わりあう事で動作するものと捉え直す考え方。

オブジェクトとは

プログラムにおけるデータとそれを処理するコードを一かたまりのものとしてみなした概念。

プログラムをオブジェクト指向で書く利点

プログラムを複数の固まりに分割することができます。これによって大きなプログラムをより小さな対象に分けて作ることができるようになります。
よって大規模なプログラムを作りやすくなります。

また同じようなことをしているコードを使いまわすことがやりやすくなる。これによって同じようなコードを何度も書かなくて良くなります。

   1 "hoge".reverse #=> "egoh"

上の例は文字列を逆転させる処理をreverseメソッドにやらせた例です。
文字列を逆転させるような処理をわざわざ書かなくてもすでに作られている文字列を逆転させる処理を使えば良くなるのですごく楽です。

クラス

第2回にてクラスというものについてほんの少し触れました。
クラスにはオブジェクトが持つべきデータや処理の内容が定義されています。
Rubyではオブジェクトの種類をオブジェクトがどのクラスに属しているかをみて判断しています。

この仕組みのために例えば整数に対してはreverseメソッドは実行できないし、文字列に対してはtimesメソッドを実行することはできません。

クラスの定義

クラスには処理(=メソッド)が定義されているという話をしましたが、それはどのように定義されているのでしょうか。

モジュール

ブロック付きメソッド

alstamber/2013FreshManRubySeminar4 (最終更新日時 2013-07-04 23:39:57 更新者 alstamber)