2
0

オブジェクト指向とは

Posted at

オブジェクト指向とは?

改めて考えてみる

今までプログラミングを学習してきてな〜んとなくで把握していたオブジェクト指向。
じゃあ、説明してみて!と言われるとパッと説明できませんでした。(恥ずかしながら、、、)
今一度オブジェクト指向とはなんなのか、しっかり調べて考えることにしました。

オブジェクト指向とは?の説明

「ある役割を持ったモノ」ごとにクラス(プログラム全体の設計図)を分割し、モノとモノとの関係性を定義していくことでシステムを作り上げようとするシステム構成の考え方のこと。らしいです。

オブジェクトとは:直訳すると「物」「対象」という意味。
プログラミングにおいては、データと処理の集まりを意味しています。

オブジェクト指向に必要な要素

クラス:データと処理をひとつにまとめる機能。モノ(オブジェクト)の設計書のようなもの。データやメソッドなどを持っています。
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

カプセル化:他のプログラムからできるだけ変更できない仕組み
ポリモーフィズム:継承したコードの一部を変更して利用するための仕組み

今回は眠気に襲われているので、ここまで。💤

2
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
2
0