# Chapter16-11 「オブジェクト指向プログラミング」 ## 8/13(金) ###### tags:`基本情報技術` さつき: * オブジェクト指向のカプセル化とは * 情報をかくす(外部から見えなくして、意識しなくてもいいようにする) * データが完全にオブジェクトの管理下になるので、勝手に変更できない。 * クラスとインスタンス * オブジェクトが持つ性質を定義したものをクラス。 * クラスをもとに、メモリ上に実体化させたものをインスタンス。 * クラスには階層構造がある * サブクラスがスーパークラスの特性を受け継ぐことを継承という。 * 汎化と特化(is a関係) * 抽象と具体。汎化と特化。下位クラス is a 上位クラス。 * 集約と分解(part of関係) * 多態性(ポリモーフィズム) * 受け取るメッセージは全て同じだけど、オブジェクト側でふるまいを変えられる。 * 過去問 * 問1 OK * 問2 なんじゃこの問題。OK * 問3 OK * 問4 OK * 問5 OK * 問6 OK にわ: - 読み込み * オブジェクト:データとメソッドがひとまとめになったもの * カプセル化:オブジェクト内のデータの管理方法や構造を外部から見えないようにすること。アクセスするには要求を送る必要がある。 * データが外部から書き換えられない * 修正時の影響が最小限で済む * クラス:オブジェクトが持つ性質を定義したもの(設計図みたいなもの) * インスタンス:クラスに属性値を与えてメモリ上に生成し、実体化させたもの * クラスの階層構造 * 一つのオブジェクトにも複数の種類、処理がある。 * ので、上位クラス(基底クラス、スーパークラス)と下位クラス(派生クラス、サブクラス)と階層構造をもたせ、下位が上位のデータやメソッドなどの構造を引き継げるようにできる。 * つまり、継承。 * 汎化と特化 * 上位クラスと下位クラスは「汎化と特化」の関係である。bus is a car 的な。 * 集約と分解 * 継承関係のない上位・下位クラスもある。これは、「下位クラスは上位クラスの一部である」というもの。tire is part of car 的な。 * ポリモーフィズム(多様性) * 同じメッセージを複数のオブジェクトに送っても同じ処理ではなく、それぞれの固有の処理を行う、ということ。 - 過去問 * 問1:OK * 問2:OK * 問3:OK * 問4:OK * 問5:OK * 問6:OK ちさと: * オブジェクト:データ(属性)とメソッド(処理)をひとつにまとめた概念 * カプセル化 * 他のオブジェクトから直接内部データにアクセスできない * アクセスするには要求を「メッセージ」という形でオブジェクトに送る⇨メッセージに応じたメソッドが起動して内部データにアクセス * データが完全にオブジェクトの管理下となるので、変な値に書き換えられる心配がない * データやメソッドを変えても、既存のメソッドは変わらないので影響しない。影響が最小限で済む。 * クラス * オブジェクトの設計図 * クラスの階層化 * 下位クラスは上位クラスのデータやメソッドの構造を受け継ぐことができる(継承) * 汎化と特化 * 抽象と具体 * 集約と分解 * 下位クラスは上位クラスの一部 * インスタンス * 設計図をもとに実体化させたもの * 多態性(ポリモーフィズム) * 同じメッセージでも、受け取ったオブジェクト側によってそれぞれ異なる動作になる * 過去問 * 問1:おk * 問2:おk * 問3:おk * 問4:おk * 問5:おk * 問6:おk まい: * オブジェクト指向プログラミング - オブジェクトとは、データとメソッドを一つにまとめた概念 - 従来は手続き型が主流だった - オブジェクト指向はモジュールの独立性が高く、保守しやすいプログラムを作ることができる - カプセル化
情報隠蔽できる
オブジェクトの実装方法に修正を加えても、その影響を最小限に止めることができる - クラス: オブジェクトが持つ性質を定義したもの。オブジェクトの設計図。 - インスタンス: クラスを元にメモリ上に生成して実体化させたもの - 階層構造のクラス: サブクラスがスーパークラスの特性を受け継ぐことができる。(Inheritance) - Superclass ⇦ (generalization) ⇦ subclass - Superclass → (specialization) → subclass - Aggregation and decomposition 継承関係のない上位クラスと下位クラスの関係 - ポリモーフィズム: 同じメッセージを複数のオブジェクトに送ると、それぞれが独立した固有の処理を行う * 過去問 * 問1 ok * 問2 ok * 問3 ok * 問4 ok * 問5 ok * 問6 ok