今回はオブジェクト指向プログラミングの基礎として
「オブジェクト指向プログラミングの構成要素」について書き溜めます。
今回の記事では詳しいところは一切書きません。
全体を見渡す用途として利用してください。
オブジェクト指向プログラミングの基本概念
オブジェクト指向プログラミングにおいて
大きく下記の5つが基本概念だと思う。
- クラス化
- インスタンス化
- 継承
- カプセル化
- 多態性
クラス化
クラス化とは、データの構造を一般化して定義することです。
クラスは、「フィールド」と「メソッド」からなる設計図だと思ってください。
データ(フィールド)と、それに付随する処理(メソッド)を
1つの設計図(クラス)としてまとめ(一般化または抽象化)設計します。
インスタンス化 (Instantiation)
インスタンス化とは、クラス(設計図)を具体化したものです。
インスタンスは、インスタンス自身の属性、状態をフィールドに持つことができる。
Javaにおいて、クラスのインスタンスは「参照型」となる。
(参照型については過去記事[Java 変数 基本型と参照型の違い]を参照)
Javaにおいて、「インスタンス」と「オブジェクト」は同義である。
継承 (Inheritance)
データの構造に変更がある場合、過去定義したクラスを直接修正するのではなく、
クラスを拡張し変更部分のみ修正すること。
カプセル化 (Encapsulation)
フィールドを参照するメソッドを提供することで、
外部からデータの勝手な変更を許可しないこと。
クラス内に不可分な領域を定義することである。
多態性(Polymorphism)
類似した処理を行うメソッドには
統一的な名称を利用すること。
StringFromNumberなどという関数を用いず
data.toString()といった統一的なメソッドにすることで
オブジェクトの種別によらない抽象度の高い変換形式が実現可能になる
今回はオブジェクト指向プログラミングの基礎の基礎である。
それぞれの構成要素ごとに話が広がっていくと思うので
しっかり基礎を抑えておきたい。
じゃあね〜〜〜〜。