0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オブジェクト指向って何?~イントロダクション~

Last updated at Posted at 2023-04-14

オブジェクト指向って?

初学者による第一弾記事は、誰しもが引っかかるオブジェクト指向についての記事を書こうと思います。
まず初めに、本記事は自分の学習内容を備忘録的に記載していくので初学者の方と一緒に勉強していくスタイルです!
オブジェクト指向そんなに甘くないよというお声もあると思いますが、まずは慣れるところから行きます。

ソフトウェアを楽に作る

"オブジェクト指向でなぜつくるのか"という名著によると、
オブジェクト指向というのはそもそも"ソフトウェアを楽に作るため"に使うそうです。

ほぉ 一番難しいと思っているのにどういうこと?

用語も呪文のようにプログラミングでしか聞かない言葉もいっぱいあるし、
なんか分かった気になって実装しようとするとうまくいかないし…。

ということでまずは用語になれる所から始めます。

classとインスタンス

まず初めにこの二つから
・class "設計図"
・インスタンス "モノ"
これは対に考えていくといいみたいです。

classを実行すると物であるインスタンスが出来上がる。

このclassやインスタンスに対して何か変数を持たせたいと思ったときに登場するのがメソッドですね。

下記はPersonというclassに二つのインスタンスメソッドを定義してあります。

class Person
 # インスタンメソッドであるイニシャライズメソッド
  def initialize(name, age)
    @name = name
    @age = age
  end
 # 自己紹介をするメソッドです。
  def greet
    "Hello, my name is #{@name} and I am #{@age} years old."
  end
end

person = Person.new("Alice", 30)
puts person.greet # => "Hello, my name is Alice and I am 30 years old."

initialize メソッド

initializeメソッドはインスタンスを初期化するものになります。
なんか初期化ってよくわからないけど設計図どおりにインスタンスを生成するというイメージです。

今回のインスタンスを言葉にすると
initialize(name,age)
引数の名前と年齢ちょうーだい!

お次にdef greet に関しては自分で定義しているメソッドです。
initializeメソッドでもらった引数で、自己紹介の挨拶するね!

なので、person = Person.new("Alice", 30)で"Alice"という名前と"30"歳という引数をあげると

                   (@name)          (@age)
"Hello, my name is   Alice  and I am  30   years old."

ここだけならなんかめちゃ簡単にみえますね。

次の記事ではポリモーフィズムについて書きます。

ポリモーフィズムって? (準備中)

参考文献

オブジェクト指向でなぜつくるのか 第3版

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?