Ruby入門のメモ

クラスをあまりわかっていないのでメモしとく。

www.rubylife.jp

クラスの概念

initialize

オブジェクトを作成する時に必ず実行したい事をメソッドを呼び出さずにここで実行する。

アクセスメソッド

クラスの中で使われているインスタンス変数はクラスの外からは、アクセスできない。変数を弄りたい時は、インスタンスメソッドを使って操作する。なので、クラスの中にそのやりたい事をメソッドして書いて置かなければならない。というか、そうする。

ただ単に、変数の値を読みだす、書き換えるだけの為に、アクセスメソッドが用意されている。 attr_accessor: 変数名

定数

クラス内で定義された定数は、以下の様に書くとクラス外で参照できる。 クラス名::定数名

クラス変数

クラス変数は、そのクラスから作られた全てのオブジェクトで値を共有できる仕組み。


クラスの継承

クラスを継承する

Class クラス名 < 継承するクラス名

メソッドのオーバーライド

継承を使った場合、スーパークラスとサブクラスで同名のメソッドを新しく定義する事が出来る。その事をオーバーライドすると言う。 オーバーライドしなかった場合は、スーパークラスのメソッドがそのまま使われる。

スーパークラスのメソッドを呼び出す。

サブクラスでメソッドをオーバーライドけど、スーパークラスのメソッドを使いたい場合は、superを使う。superの部分にスーパークラスのメソッドの戻り値が入る。


アクセス制御

クラスに書いたメソッドのうち、インスタンスからアクセスしない、メソッドが使うだけのメソッドには キーワード private を付ける。 private :メソッド名 initializeメソッドは常にprivateになる。

アクセス制御をまとめて設定する

privateと書いてその下にメソッドを書くと、それ以降は全て private になる。


モジュール

モジュールの定義

定義の仕方: module モジュール名 end

モジュールは、インスタンスを作れない。 モジュールは他のクラスにincludeして使う。 モジュールは多分、サブルーチンの事。

モジュールを関数のように使う

モジュール内に module_function :メソッド名 と書いて外から モジュール名.メソッド名 と呼んで使う。 includeした場合は、メソッド名だけで呼べる。


ホワイの(感動的)Rubyガイド :: 3. (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース

変数 → ニックネーム float → 小数 シンボル → 文字列を使いたいが画面に表示する必要がない場合に使う。 ブロック → ブロックを使って1組の命令をまとめてグループにして、それをプログラムの中で受け渡すことが出来る。 ハッシュ → 辞書のようなもの << → 末尾に追加する