オブジェクト指向言語に関して
ChatGPTの登場によって「コンピュータ言語が自然言語になる」と感じており、これからはプログラミング言語を環境に応じて使い分ける時代になると考えています。ですので、これからプログラムを始めようとする人へ向けて、様々なプログラミング言語を紹介していこうと思います。
前回は、概要・機械語・手続き型言語に関して記載しましたので、参照いただければと思います。
オブジェクト指向言語に関して
オブジェクト指向はプログラミングの基本単位は「オブジェクト」です。
オブジェクトとは、データ(プロパティや属性)と、それに関連する動作(メソッドや関数)を含んでいます。
オブジェクト単位で記載するプログラミング言語が「オブジェクト指向言語」となります。
前回紹介した機械語、アセンブラ、C言語を除く、現代のプログラミング言語は、ほぼオブジェクト指向言語で記載されていと考えても良いです。
それぐらいオブジェクト指向の考え方は重要となります。
オブジェクト指向言語の3大要素
オブジェクト指向言語には、クラスとインスタンスという考え方があります。クラスは「オブジェクトの型」でインスタンスは「実体」です。
例えば、
「車」というクラスを設計するときは、
プロパティ:タイヤが4つあり、座席があり、窓がついている
メソッド:走る
というように定義します。
実際にプログラムで使用するときは、
車クラスの「乗用車」のインスタンスを作り、
「乗用車.走る()」
とすることで乗用車が走るプログラムを作成できます。
トラックなら、座席は2つ、荷台とプロパティを変えて実装します。
「トラック.走る()」
とするとトラックは走ります。
オブジェクト指向言語の3大要素は、
1.継承
クラスのプロパティやメソッドを引き継ぐ
2.カプセル化
プロパティとメソッドを隠蔽する
3.多様性(ポリモーフィズム)
同じメソッド名を持つ場合でも、各クラスに応じた動作を実行できる
と呼ばれます。
結局のところ、プログラムをしていて「. (ドット)」を打つと、プロパティやメソッドを操作できるのはオブジェクト指向言語のおかげです。
関数言語だと、乗用車のプロパティを一つ一つ定義して、トラックのプロパティも定義し、走る関数の中で乗用車とトラックの走り方を分岐するという「スパゲッティプログラム」ができてしまいます。
オブジェクト指向言語で、クラスライブラリを作成することができ、プログラムの生産性は格段に上がりました。
オブジェクト指向言語の種類
現代の大半の言語は、オブジェクト指向言語ですが、感覚的にアプリケーションプログラムを行うものがオブジェクト指向を活用します。
C++、Java、C#などが代表的なオブジェクト指向言語です。
まとめ
オブジェクト指向言語に関してまとめました。
手続き型言語、関数型言語でプログラムをすると、オブジェクト指向言語には無駄が多いと感じると思いますが、他の人が作ったクラスライブラリを使うことで生産が上がります。
つまり、オブジェクト指向言語から、プログラムは、コードを書くというよりも、ライブラリのマニュアルを読んむことが多くなります。
自分で1からプログラムを作成するよりも、他の人が作ったコードを使ったほうが効率が良いからです。
現代では、クラスライブラリが充実しており、アルゴリズムを書くことはほぼなく、コーディング好きな人は少し寂しい気もしますが、やりたいことが効率的にできるようになっています。
オブジェクト指向言語を活用して、プログラミングを始めてみましょう!