クラス、オブジェクト、インスタンスについて

こんばんは、インターン生の@shunkurosakiです。
最近はPennyを購入し、悩みの種であった運動不足が解決されそうで何よりです。
会社では、厳しくも心温かい先輩や、同期とは思えないスキルを持つ仲間に囲まれてとても幸せです。

さて、本日はRubyのオブジェクトに関しての知見を深めました。普段何気なく使っているオブジェクト、クラス、インスタンスの概念が曖昧だったため、今一度ここにまとめておきます。

クラスとは

クラスとは、オブジェクトの設計図です。クラスは「class」から始まり、「end」で終わります。文頭のクラス名は大文字で定義することに気をつけて下さい。クラスはあくまでも設計図としての機能しか持たないため、何かを実行するためにはクラス内にオブジェクトを作成する必要があります。

class Skateboard
end

オブジェクトとは

オブジェクト指向言語でのオブジェクトとは、「データと手続きをまとめたもの」を指します。例えば、僕の相棒「Penny」をオブジェクトとして扱えば、名前や重量、移動速度等のデータと、移動方法や技といった手続きを一つにまとめることができます。以下の例文では、Skateboardに関する情報を持ったモデルを生成する「@skateboard = Skateboard.new(name: Penny, spead:28km ,glam: 1.9kg)」がオブジェクトとなります。

class SkateboardController < ApplicationController
	def index
		@skateboard = Skateboard.new(name: Penny, spead:28km ,glam: 1900g)
		@skateboard.save
	end
end

インスタンスとは

設計図に基づいて実際にコンピュータのメモリ上に作られたオブジェクトを、インスタンスと呼びます。つまり、今回の例では、クラス内のオブジェクトである「@skateboard = Skateboard.new(name: Penny, spead:28km ,glam: 1.9kg)」は、インスタンスでもあります。「@skateboardはSkateboardControllerオブジェクト」といったら、「@skateboardはSkateboardControllerクラスのインスタンス」を指すことになります。

今回は、クラス、オブジェクト、インスタンスに関して軽く触れてみましたので、次回はインスタンスメソッドについて踏み込んだ解説を行います。それではおやすみなさい。