RubyでClassクラスの引数付きnewメソッドを使い、インスタンスを生成すると同時にinitializeメソッドを呼ぶ

2018年9月21日RubyClass,initialize,new,Ruby,インスタンス,クラス,メソッド,引数

Rubyでオブジェクト指向を勉強していると、まず最初に登場するのが「new」メソッドです。

これはClassクラスに属するメソッドで、クラスのインスタンスを生成します。

その際、引数を指定してやるとinitializeメソッドを先に呼び出すことが出来ます。

Rubyのようなオブジェクト指向の言語を勉強していると、最初に躓くのが"インスタンスを生成する"という概念です。

僕なりの理解をコード付きで説明してみます。

newメソッドでインスタンスを生成するのはRubyの基本中の基本

class Car
  def initialize(name)
    car_name = name
    puts "この車の車種は#{car_name}です。"
  end
end

Car.new("Lexus")

この結果は以下になります。

$ ruby new.rb
この車の車種はLexusです。

このプログラムは、Car(=車)というクラスを定義しています。

現実世界でも、車というのを聞くと何となくこういうものだというのが皆さんの頭にも浮かぶと思いますが、クラスとは概念を定義するものです。

最後の Car.new(“Lexus") で、車の中のLexusという車種(インスタンス)をnewメソッドを使って作り出しています

僕はこうやって例えることですっと理解できました。

インスタンスとは、クラスという概念を具体化したものである。

今回、Carというクラスは引数を取ることで、initializeメソッドを最初に呼び出しています。

引数nameをcar_nameという変数に代入し、文字列の中に表示させるという簡単なプログラムですが、自分で作ってみることでRubyにおいて非常に重要なnewメソッドとinitializeメソッドの使い方を学ぶことが出来るのです。

独学でプログラミングを出来るようにするには、まず動くかよく分からないプログラムだろうが、自分で書いてみることだなぁと常々思っています。

※最近はPHPのフレームワークであるLaravelを勉強中です。