こんにちは、もえです。
今回はJavaを勉強しているとよく出てくる「オブジェクト指向」についてまとめてみました。
オブジェクトとは
オブジェクト指向は、大きなプログラムを記述しようとしたときに、人間の頭が追い付かず開発に時間がかかったり、完成しても不具合だらけのプログラムになってしまうことが多かったことから誕生した考え方です。
端的に言うと、「ソフトウェアを開発する時に用いる部品化の考え方のこと」です。
この考え方に沿って1つのソフトウェアを複数に部品化すると、プログラムが把握しやすくなり、「人間の頭が追い付かない状況」を避けることが出来るようになります。
オブジェクトとは、端的に言うと「もの」です。
例えば車で考えた時に、タイヤ、シート、エンジンなどひとつひとつがオブジェクトとなります。
では、オブジェクト指向とは何でしょうか。
オブジェクト指向プログラミングでは、プログラミングの機能や役割を区別し、それぞれの部品(オブジェクト)として組み合わせることで1つのプログラミングを作っています。
Javaでコーディングする際に定義するクラスも、クラスから生成されるインスタンスもオブジェクトです。
オブジェクト指向の3大機能は、以下の3つです。
- カプセル化
- 属性や操作を、一部の相手からは利用禁止にする機能
- 継承
- 過去に作った部分を流用し、新しい部品を簡単に作れる機能
- 多様性
- 似ている2つの部品を「同じようなもの」とみなし、「いいかげん」に利用できる機能
クラス
クラスは、オブジェクトを作成するための設計図です。
オブジェクトの属性(プロパティ)や振る舞い(メソッド)を記載する。
プロパティは、オブジェクトが持つデータ、メソッドはオブジェクトが持つ機能を指します。
自動車を例に考えてみると、クラスが自動車を作る元となる設計図にあたる。
また自動車の走る、曲がる、止まるといった機能がメソッド、車体サイズ、車体サイズや色、排気量といったスペックがプロパティに対応しています。
インスタンス
クラスを実体化したものがインスタンスです。
自動車の例で考えれば、設計図を基にして製造された自動車がインスタンスにあたります。
また、クラスからオブジェクトを生成することを「インスタンス化」と呼ぶ。
コンストラクタ
クラスをインスタンス化する際に初期化処理を行うための特別なブロックです。
- 戻り値を持たないこと(戻り値の型も書かない)
- クラスと同じ名前である
メソッド
メソッドとは一連の処理を一つにまとめたものです。
メソッドは覚えきれないほどたくさんありますが、自分で自作することが可能です。
というより、自分が実現したいプログラムを書く際、ほとんどの場合に自作のメソッドを作成します。
mainメソッド
プログラムを実行する時にシステムから最初に呼び出されるメソッドです。
今まで「オブジェクト指向って何だろう・・・」と思っていたので、今回少し理解することが出来て良かったです。
また投稿します!