LoginSignup
0
0

More than 5 years have passed since last update.

Rubyの基本記述の仕方〜その7〜 クラスとインスタンス

Last updated at Posted at 2018-10-04

クラスとインスタンス

クラス = 設計図
インスタンス = 設計図に従って生成された実物

ruby.qiita.rb
class Morikuma
end

クラスは書き方で定義できます。
ただし、

クラス名の最初は必ず大文字

で記述する必要があります。

インスタンスの生成

定義したクラスに対して、インタンスを生成する際には、

「クラス名」.new

の書き方で記述します。

ruby.qiita.rb
kuma1 = Morikuma.new

initializeメソッド

def initialize
〜〜
end

インスタンス変数

インスタンス変数は@を付けて表します。

ruby.qiita.rb
class Morikuma
  def initialize # Morikuma.new したら呼ばれるメソッド
    @morikuma = "morikuma"
  end
  def puts_morikuma
    puts @morikuma
  end
end

attr_accessorについて

ruby.qiita.rb
class Morikuma
 attr_accessor :age
 attr_accessor :place
end

上記のようにクラスに対して変数で情報を付与することができます。

initializeメソッド

initializeメソッドは、クラス定義の際に記述することで
インスタンスが生成された時にメソッドを呼び出すことなく、同時に処理してくれます。

ruby.qiita.rb
class Morikuma
  def initialize
    @morikuma = kuma
  end
end

※上の例では、生成されたインスタンスを=kumaと上書きする謎処理になっておりますがあくまで書式の例として見ていただければ幸いです。

initializeメソッドに引数を定義

initializeメソッドを定義する際に、引数を要求する形で記載することもできます。

ruby.qiita.rb
class Morikuma
  def initialize(変数1,変数2・・・)
   なんかいい感じの処理
  end
end

ただし、引数を要求する形で定義した際には、「.new」を実行する際に引数とセットで呼び出す必要があります。

ruby.qiita.rb
Morikuma.new(変数1)

所感

もろもろ、記事を書いていて自分の理解の浅さが特に苦しい内容でした。
このあたりはもっと実際のコードに触れて、クラス、インスタンス、initializeなどの言葉が指している概念をイメージでつかめるようになってから、再度より正しい内容に更新していきたいと思います。

今日はこのあたりで失礼します。

参考サイト

rubyにおけるクラスとインスタンスについて
https://qiita.com/you8/items/7312190ef83d0ed2ef9e

【Ruby】クラスメソッドとインスタンスメソッドについてザクッと分かりやすく説明してみる
https://qiita.com/amidara/items/27221675638cdc9bde6b

initializeメソッド
https://www.rubylife.jp/ini/class/index5.html

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0