セールで買った参考書を読んだメモ : 独習Ruby on Rails 1,2章

独習Ruby on Rails

  • セールしていたので Kindle で買いました
  • せっかく買ったので勉強のために読んだメモ取っていきます

    オブジェクト指向Ruby の基本

    オブジェクト指向という考え方

    オブジェクト指向プログラミングとは

  • オブジェクトを設定する
  • オブジェクトに必要なロジックをオブジェクト内に閉じ込め、必要な時に呼び出す
  • Ruby は扱うもの全てがオブジェクトである
  • オブジェクトとは
    • ある目的の振る舞いと、名前などの特徴となる固有の値とを持つ
    • 必要な時に呼び出される振る舞いを通し、固有の値を利用して目的とする処理を行う

      メソッドとカプセル化

  • メソッドとは振る舞い
    • オブジェクト固有の動作ロジック
  • メソッドは、目的の動作に合わせてオブジェクトの中に複数保持することができる
  • オブジェクト自身のメソッドをオブジェクトに閉じ込めて隠蔽することをカプセル化と言う
  • メソッドを利用する側はロジックを知る必要する必要はなく、メソッドの名前と役割だけ認識できれば良い
  • これによりオブジェクト間の関係はシンプルとなる

    基本的なRuby文法1 オブジェクト指向

    クラスオブジェクト

  • Rubyではオブジェクトの型をクラスオブジェクトと呼ぶ
class クラス名
end

NOTE: スネーク型 hello_world キャメル型 HelloWorld

クラス名はキャメル型で命名

インスタンスメソッド

class オブジェクト名
  def メソッド名
  end
  
  def メソッド名
  end
end

クラスメソッドとインスタンス

  • クラスメソッドはクラスオブジェクトそのものから呼び出すことができる
    • new など
def self.メソッド名
end
  • プライベートメソッドはクラスの中でのみ実行できるメソッド
private
  def メソッド名
  end

基本的なRuby文法2 変数と定数

変数の種類

$hensu
@hensu
@@hensu
  • ローカル変数
    • メソッド内でのみ有効
hensu
  • 定数
HENSU
  • シンボル
    • ruby 内で整数値に置き換えて管理されているメソッド名・変数名・定数名・クラス名などをシンボリックな名前で表現する
    • メソッド指定のオプションなどで使用する
:hensu

基本的なRuby文法3 ロジックの組み立て

  • 比較と演算子
  • 処理の基本パターン
    • 連接構造
    • 分岐構造
    • 繰り返し構造

      Rubyでオブジェクトを活用する

  • インスタンス自身が持っているメソッドを見ることができるメソッド、methods
  • あるクラスがどのクラスを継承して作られたかを見るメソッド、superclass
  • 親クラスで設定されたメソッドや特性は親クラスで設定されており、それらのメソッドや特性が子へ引き継がれている
  • オーバーライドによって親クラスのメソッドを上書き変更することができる
    • super を用いると親のメソッドの処理をそのまま実行することができる
  • initialize メソッドはクラスがインスタンス化される時に必ず実行されるメソッド
  • attr_accessor
    • インスタンス変数名から@を除いた名前のインスタンスメソッド
    • インスタンス変数のない要素参照できるようにするためのメソッド
    • @name という変数の内容を nameメソッドとして参照できるようになる ```ruby class Human attr_accessor :name

      def initialize(p_name) @name = p_name end end ```