はじめに
今回もRubyについて復習していこうと思います!
クラスとインスタンスについて
クラスについて
クラスは、値の元となるものです!値の共通のルールを定義します!
ここで決めるルールは、共通の属性と処理です!
クラスは、実態は持ちません!(設計図の様なものです)
このクラスの利点としては、共通の情報をまとめ、個別の情報は各データごとに分けることで、開発・管理・保守がしやすいという点があります!
以下の様な記述をします!
class Fishing end
インスタンス
インスタンスとは、クラスを元にして作られるデータのことです!
インスタンスは、クラスと異なる点としては実態を持ちます!
インスタンスは、クラスが使用できるnewメソッドを実行して生成します!
以下の様な感じで記述します!
class Fishing end fishing_maker = Fishing.new
多くの場合、インスタンスを生成したら、再利用するために変数へ代入します!
これは、インスタンスを生成した後からデータを追加したり、メソッドを実行できる様にするためです!
クラスメソッドとインスタンスメソッドについて
インスタンスメソッドについて
インスタンスメソッドとは、インスタンスが使用できるメソッドです!
これは、クラスに定義しておきます!
これによって、インスタンスメソッドを定義したクラスから生成されるインスタンスが使用できます!
インスタンスメソッドは、インスタンスごとの個別の情報を使った処理の使用します!
以下の様に記述します!
class Fishing def fishing_tool() end end fishing_maker = Fishing.new()
属性と属性値について
属性は、データの性質となる情報のことです!
それぞれに当てはまる値を属性値と言います!
この様な個別の情報となる属性の定義には、インスタンス変数を用います!
インスタンス変数について
インスタンス変数とは、データが持つ属性を定義する変数のことです!
定義しておくことで全てのインスタンスが同じ属性を持つことになりますが、その属性値は、個々のインスタンスによって別々に設定できます!
以下の様に記述します!
class Fishing def fishing_tool(fishing_rod) @fishing_lure = fishing_lure end end fishing_maker = Fishing.new() fishing_maker.fishing_lure("Rapala")
クラスメソッドについて
クラスメソッドとは、クラスが使用することができすメソッドです!
クラスメソッドを定義したクラス自身が使用できます!クラスで共通の情報を使った処理に使用します!
以下の様に記述します!
class Fishing def self.fish puts '釣りをします' end def fishing_tool(fishing_lure) @fishing_lure = fishing_lure end end fishing_maker = Fishing.new() fishing_maker.fishing_tool("Rapala") Fishing.fish
ちょっと長くなりましたが、簡単なものを書くとこんな感じです!
initializeメソッドについて
インスタンスが生成された瞬間に、生成されたインスタンスが実行する処理を定義するインスタンスメソッドのことです!
Rubyのクラスから生成される全てのインスタンスにはこのinitializeメソッドが用意されており、クラスに何も記述しなくてもinitializeメソッドは自動で実行されています!この場合は異本的には何も処理を行いません。
もし、インスタンス生成時に何か処理を行いたい場合は、新たにinitializeメソッドを定義して処理を記述してあげないといけません!
以下の様に記述します!
def initialize(name, user, item) @name = name @user = user @item = item
コメント