クラス、メソッドを一気に理解する

目的

以下のコードを理解することを目的とします。

 

calss Animal

     def setName(str)

          @name =str

      end 

      def dispName()

          print(@name,"¥n")

      end

end

 

animal = Animal.new()

animal.setName("dog")

animal.dispName()

このコードを実際に実行すると、dogと表示されるはずです。

 

用語の理解

まずは用語の定義を見ていきます。

クラス:オブジェクト(rubyではデータのことをオブジェクトという)の設計図のこと。定義する際は、頭文字を必ず大文字にします

インスタンス:クラスから作られたオブジェクト。名前の前に@をつけて定義します

メソッドクラスから作成されるオブジェクトに対して行わせたい処理を記述するもの、命令。例えば、今回出てくるnewメソッドは、そのクラスのインスタンスであるオブジェクトを作成します。

 

要は、クラスは設計図であり、実際に何かを行わせるにはクラスからオブジェクトを生成する必要がある、そのクラスに対する動作を行わせているクラスメソッドが用意されている、ということです。

 

コードの読み取り 

さきほどのコードに、一文ずつ意味をコメントしていきます。

calss Animal #Animalという名前のクラスを定義します

     def setName(str) #setNameという名前のメソッドを定義します

          @name =str #setNameは@nameという名前のインスタンス関数に文字を格納していくメソッドです

      end 

      def dispName() #dispNameという名前のメソッドを定義します

          print(@name,"¥n") #dispNameは@name改行、を表示するメソッドです

      end

end

 

animal = Animal.new() #animalはクラスAnimalからオブジェクトを生成する変数です

animal.setName("dog") #animal変数に対してsetNameメソッドが実行され、@nameにdogという文字列が代入されます

animal.dispName() #animal変数に対してdispNameメソッドが実行され、@name(すなわちdog)が表示される