Ruby〜クラス1〜

Ruby

こんにちはkazutoです。

今回は、Rubyのクラスについて解説していきます。クラスについては解説が難しいため、複数、記事を執筆していきます。
こちらの記事では、クラスの概念について解説しています。

なお、 オブジェクトについての記事を参照していただいてから、こちらの記事を読み始めてもらうと、クラスの理解が深まります。

クラスとは

Rubyで扱うクラスとは、オブジェクトの設計図みたいな物です。Rubyは、オブジェクトを用いてプログラムを作成していくと、「Ruby~オブジェクト〜」で解説していました。

イメージをするのは難しいかもしれませんが、クラスを具現化した物がオブジェクトです。抑えて欲しいポイントは、

  • クラスは、オブジェクトを抽象化した設計図
  • オブジェクトはクラスを具体化した物

という点です。

一度、元からRubyに存在する6つのオブジェクトを見てみましょう。

クラスとオブジェクトの関係性
抽象=>具体
抽象<=具体

  • Stringクラス(抽象)
    文字列オブジェクト(具体)
  • Integerクラス,Floatクラス(抽象)
    数値オブジェクト(具体)
  • Timeクラス(抽象)
    時刻オブジェクト(具体)
  • Dateクラス(抽象)
    日付オブジェクト(具体)
  • Hashクラス(抽象)
    ハッシュオブジェクト(具体)
  • Arrayクラス(抽象)
    配列オブジェクト(具体)

もう一度、書きますがオブジェクトとは、クラスを具現化した物です。したがって、クラスが無いと、オブジェクトは、扱えません。

画像をご覧ください。クラスとオブジェクトの関係性を図解化した物です。階層のトップにクラスがあって、階層が深くなるほど具体的な物になってきます。

続いて、オブジェクトの階層の直下のインスタンスについて解説していきます。

インスタンスとは

インスタンスとは、クラスという設計図を元に生成された、オブジェクトです。クラスを使用してプログラムを組んでいく際は、インスタンスを基盤にしてプログラムを組んでいきます。

画像をご覧ください。クラスからインスタンス生成する流れを図解化しました。ある一つのクラスから、インスタンスは複数個、生成する事が可能です。

※色々と用語が出てきており、頭が混乱するかもしれませんが、あくまでもインスタンスはオブジェクトです。イメージは、オブジェクトの中にインスタンスがあるという感じで捉えてください。

まとめ

今回は、クラスの概要についてまとめました。クラス、インスタンスなど、概念が難しいですが、実際にプログラムを組んでいく際に「なるほど」と思いますので、焦る必要はありません。
次回は、実例を交え、

クラス=>インスタンスを生成=>属性、メソッド

という流れで、簡単のプログラムを作成していきます。

以上,kazutoでした。