教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
クラスとはオブジェクトの設計書のようなもので、オブジェクトの中のプロパティやメソッドをひとまとめにしたものです。
インスタンスとはクラスから生成された、実体です。
クラスが人の設計図だとすれば、インスタンスは一人の人間の実体です。設計図であるクラスからオブジェクトを作ることをインスタンス化と呼びます。
クラスは設計図でインスタンスは、設計図から生成されたものです。
例えば、たい焼きならたい焼き機はクラスで、生成されたインスタンスはたい焼きです。
クラスとインスタンスを使うことで、処理と処理を干渉させずに、処理や変数を分割して作っていくことができます。
クラスとインスタンスを初めて学ぶときは理解がしづらく、誰もが難しく感じます。実際にコードを書い、繰り返し学習しながら、少しずつ理解していきましょう。
車のクラスを作ってみましょう。
「class クラス名」でクラスを生成できます。
ruby12 Copied!class クラス名
end
「Car」という車のクラスを作ります。
test.rb
を以下のコードのように編集してください。
ruby12 Copied!class Car
end
下記のコードのCarクラスの中にinitialize
メソッドがありますが、initialize
メソッドはインスタンスを生成したとき、実行される処理をまとめたメソッドです。
インスタンスを生成するときはインスタンス名 = クラス名.new
というコードで生成できます。
test.rb
を以下のコードのように編集してください。
ruby12345678 Copied!class Car
def initialize(name)
puts name ## Car.new("xxxx")が出力される
end
end
car1 = Car.new("ベンツ") ## Carクラスのinitializeメソッドのname変数に"ベンツ"が入る
car2 = Car.new("プリウス") ## Carクラスのinitializeメソッドのname変数に"プリウス"が入る
car1やcar2のインスタンスを作成した時このような処理の順番で行われます。
コードを追加したら、ターミナルに以下のコマンドを実行してください。
Copied!$ ruby test.rb
以上で今回のパートは終了です。
お疲れ様でした。