オブジェクト指向とは?
改めて考えてみる
今までプログラミングを学習してきてな〜んとなくで把握していたオブジェクト指向。
じゃあ、説明してみて!と言われるとパッと説明できませんでした。(恥ずかしながら、、、)
今一度オブジェクト指向とはなんなのか、しっかり調べて考えることにしました。
オブジェクト指向とは?の説明
「ある役割を持ったモノ」ごとにクラス(プログラム全体の設計図)を分割し、モノとモノとの関係性を定義していくことでシステムを作り上げようとするシステム構成の考え方のこと。らしいです。
オブジェクトとは:直訳すると「物」「対象」という意味。
プログラミングにおいては、データと処理の集まりを意味しています。
オブジェクト指向に必要な要素
クラス:データと処理をひとつにまとめる機能。モノ(オブジェクト)の設計書のようなもの。データやメソッドなどを持っています。
praivate変数も付随して覚える!外部から操作できない変数のこと。
プロパティ:オブジェクトが持っているデータのこと。
(スマホだったら、色・大きさ・メーカー・機種など)
メソッド:オブジェクトが持っている処理のこと。
(スマホだったら、鳴る・光る・撮る・入力する・再生するなど)
オブジェクトに対して命令をする文のことを関数といい、それがメソッドです。(メソッド=関数)
インスタンス:クラス(抽象的)から実体を取り出し、具体化すること。
実際に操作するオブジェクト。
3大原則
継承:同じようなプログラムを1か所にまとめてコードを再利用しやすくする仕組み
わかりやすくいうと、既存のクラスをもとに新しいクラスを作ることです。
class Animal
def initialize(animal_type, animal_sounds)
@name = animal_type
@sounds = animal_sounds
end
def info
puts "動物:#{@name} 鳴き声:#{@sounds}"
end
end
class ZooAnimal < Animal
end
zoo_animal = ZooAnimal.new("ライオン", "ガオー")
zoo_animal.info
この部分が継承の記述です
class ZooAnimal < Animal
カプセル化:他のプログラムからできるだけ変更できない仕組み
ポリモーフィズム:継承したコードの一部を変更して利用するための仕組み
今回は眠気に襲われているので、ここまで。💤