---
# System prepended metadata

title: Chapter16-11 「オブジェクト指向プログラミング」
tags: [基本情報技術]

---

# Chapter16-11 「オブジェクト指向プログラミング」

## 8/13(金)

###### tags:`基本情報技術`

さつき：
* オブジェクト指向のカプセル化とは
    * 情報をかくす（外部から見えなくして、意識しなくてもいいようにする）
    * データが完全にオブジェクトの管理下になるので、勝手に変更できない。
* クラスとインスタンス
    * オブジェクトが持つ性質を定義したものをクラス。
    * クラスをもとに、メモリ上に実体化させたものをインスタンス。
* クラスには階層構造がある
    * サブクラスがスーパークラスの特性を受け継ぐことを継承という。
* 汎化と特化（is a関係）
    * 抽象と具体。汎化と特化。下位クラス is a 上位クラス。
* 集約と分解（part of関係）
* 多態性（ポリモーフィズム）
    * 受け取るメッセージは全て同じだけど、オブジェクト側でふるまいを変えられる。
* 過去問
    * 問１　OK
    * 問２　なんじゃこの問題。OK
    * 問３　OK
    * 問４　OK
    * 問５　OK
    * 問６　OK

にわ：
- 読み込み
    * オブジェクト：データとメソッドがひとまとめになったもの
    * カプセル化：オブジェクト内のデータの管理方法や構造を外部から見えないようにすること。アクセスするには要求を送る必要がある。
        * データが外部から書き換えられない
        * 修正時の影響が最小限で済む
    * クラス：オブジェクトが持つ性質を定義したもの（設計図みたいなもの）
    * インスタンス：クラスに属性値を与えてメモリ上に生成し、実体化させたもの
    * クラスの階層構造
        * 一つのオブジェクトにも複数の種類、処理がある。
        * ので、上位クラス（基底クラス、スーパークラス）と下位クラス（派生クラス、サブクラス）と階層構造をもたせ、下位が上位のデータやメソッドなどの構造を引き継げるようにできる。
        * つまり、継承。
    * 汎化と特化
        * 上位クラスと下位クラスは「汎化と特化」の関係である。bus is a car 的な。
    * 集約と分解
        * 継承関係のない上位・下位クラスもある。これは、「下位クラスは上位クラスの一部である」というもの。tire is part of car 的な。
    * ポリモーフィズム（多様性）
        * 同じメッセージを複数のオブジェクトに送っても同じ処理ではなく、それぞれの固有の処理を行う、ということ。
- 過去問
    * 問１：OK
    * 問２：OK
    * 問３：OK
    * 問４：OK
    * 問５：OK
    * 問６：OK



ちさと：
* オブジェクト：データ（属性）とメソッド（処理）をひとつにまとめた概念
* カプセル化
    * 他のオブジェクトから直接内部データにアクセスできない
    * アクセスするには要求を「メッセージ」という形でオブジェクトに送る⇨メッセージに応じたメソッドが起動して内部データにアクセス
    * データが完全にオブジェクトの管理下となるので、変な値に書き換えられる心配がない
    * データやメソッドを変えても、既存のメソッドは変わらないので影響しない。影響が最小限で済む。
* クラス
    * オブジェクトの設計図
    * クラスの階層化
        * 下位クラスは上位クラスのデータやメソッドの構造を受け継ぐことができる（継承）
        * 汎化と特化
            * 抽象と具体
        * 集約と分解
            * 下位クラスは上位クラスの一部
* インスタンス
    * 設計図をもとに実体化させたもの
* 多態性（ポリモーフィズム）
    * 同じメッセージでも、受け取ったオブジェクト側によってそれぞれ異なる動作になる
* 過去問
    * 問１：おk
    * 問２：おk
    * 問３：おk
    * 問４：おk
    * 問５：おk
    * 問６：おk


まい：
* オブジェクト指向プログラミング
   - オブジェクトとは、データとメソッドを一つにまとめた概念
   - 従来は手続き型が主流だった
   - オブジェクト指向はモジュールの独立性が高く、保守しやすいプログラムを作ることができる
- カプセル化 情報隠蔽できる オブジェクトの実装方法に修正を加えても、その影響を最小限に止めることができる
- クラス: オブジェクトが持つ性質を定義したもの。オブジェクトの設計図。
- インスタンス: クラスを元にメモリ上に生成して実体化させたもの
- 階層構造のクラス: サブクラスがスーパークラスの特性を受け継ぐことができる。(Inheritance)
- Superclass ⇦ (generalization) ⇦ subclass
- Superclass → (specialization) → subclass
- Aggregation and decomposition 継承関係のない上位クラスと下位クラスの関係
- ポリモーフィズム: 同じメッセージを複数のオブジェクトに送ると、それぞれが独立した固有の処理を行う

* 過去問
  * 問1 ok
  * 問2 ok
  * 問3 ok
  * 問4 ok
  * 問5 ok
  * 問6 ok