目次:
ビデオ: Technology Stacks - Computer Science for Business Leaders 2016 2024
Javaはオブジェクト指向です。どういう意味ですか? FORTRANのように、コンピュータに「これを行う/実行する」コマンドを与えることに重点を置く言語とは異なり、オブジェクト指向言語はデータに集中します。もちろん、オブジェクト指向プログラムはコンピュータに何をすべきかを依然として伝えています。しかし、それらはデータを整理することから始まり、コマンドは後に来る。
オブジェクト指向言語は、「これを行う/実行する」言語よりも優れています。なぜなら、人々があらゆる種類のことを行えるようにデータを整理するからです。データを変更するには、完了したすべてのものをスクラップして、何か新しいことをする必要があるたびに開始するのではなく、すでに持っているものをベースに構築することができます。コンピュータプログラマーは一般に賢い人ですが、これを理解するのにしばらくかかりました。
<!オブジェクト指向言語では、オブジェクトおよび
クラスを使用してデータを整理します。 新しいコンドミニアム開発(まだ建設中)で家を追跡するためのコンピュータプログラムを作成しているとします。家はお互いにわずかしか違いがありません。各家には独特のサイディングカラー、室内のペイントカラー、キッチンキャビネットスタイルなどがあります。あなたのオブジェクト指向のコンピュータプログラムでは、各家はオブジェクトです。 <! - 2 - >
しかし、物語はすべての話ではありません。家は少しずつ異なっていますが、すべての家は同じ特性リストを共有しています。例えば、各家は
サイディングカラーとして知られている特性を持っています。各家は キッチンキャビネットスタイルと呼ばれる別の特徴を持っています。 あなたのオブジェクト指向プログラムでは、ハウスオブジェクトが持つことができるすべての特性を含むマスターリストが必要です。この特性のマスターリストは クラスと呼ばれます。 <! - 3 - > だから、あなたはそれを持っています。オブジェクト指向プログラミングは誤って命名されています。それは実際には「クラスとオブジェクトによるプログラミング」と呼ばれるべきです。 "
クラスという単語が最初にリストされたことに注目してください。建設中の住宅開発についてもう一度考えてみてください。多くの場所のどこかに、裸の土に駐車された不機嫌なトレーラーで、青写真として知られる特性のマスターリストです。建築家の青写真は、オブジェクト指向のプログラマーのクラスのようなものです。青写真は、各家が持つ特性のリストです。青写真は、 "サイディング。 "実際の家のオブジェクトは灰色のサイディングをしています。青写真によると、 "キッチンキャビネット。 "実際の家のオブジェクトはルイ14キッチンキャビネットを持っています。
青写真を作成してから1年後に、それを使って10軒の家を建てます。クラスやオブジェクトと同じです。まず、プログラマはクラスを記述するコードを記述します。次に、プログラムが実行されると、コンピュータは(青写真)クラスからオブジェクトを作成します。 それはクラスとオブジェクトの実際の関係です。プログラマはクラスを定義し、クラス定義から、コンピュータは個々のオブジェクトを作成します。 オブジェクト指向言語については何が良いですか?
あなたがすでに新しい開発の住宅の建築指示を追跡するためのコンピュータプログラムを作成したとします。次に、大型ボスは、改装された計画 - 家の半分に3つの寝室があり、残りの半分に4つの寝室がある計画 - を決めます。
古いFORTRAN / Cスタイルのコンピュータプログラミングを使用する場合、指示は次のようになります。
地下室の溝を掘る。
溝の両側にコンクリートを置く。
地下のフレームの両側に2つずつを置く。
…
これは建築家のように、青写真の代わりに長い命令リストを作成するようなものです。計画を変更するには、リストを並べ替えて寝室の作成手順を見つける必要があります。事態を悪化させるために、指示は234ページ、394〜410ページ、739ページ、10ページ、2ページに散らばっているかもしれません。ビルダーが他の人の複雑な指示を解読しなければならない場合、その作業は10倍になります。
<! - 1 - >
しかし、クラスを始めとして、青写真で始めるようなものです。 3ベッドルームと4ベッドルームの両方の家を持つことに決めたら、1階と2階があるが、2階には屋内の壁がない
家
青写真と呼ばれる青写真で始めることができます。次に、3ベッドルームの家と4ベッドルームの家の2つの2階の青写真をもう1つ作成します。 (これらの新しい設計図には、3ベッドルームハウス999ブループリントと4ベッドルームハウス999ブループリントがあります。)<! - 2 - > あなたの建築家の同僚は、あなたの論理と組織の感覚に驚かされますが、懸念があります。彼らは質問をする。 "あなたは青写真の1つを「3ベッドルームハウス」の青写真と呼んだ。あなたが2階の青写真で、家全体ではない場合、どうすればいいですか? " あなたは自信を持って笑顔で答えます。「3ベッドルームの家の青写真は、「下層階についての情報は、元の家の青写真を参照してください。 'そのように、3ベッドルームの家の青写真は家全体を表しています。 4ベッドルームの家の青写真は同じことを言うことができます。この設定では、元の家の設計図を作成して、たくさんのお金を節約するために、すでに行ったすべての作業を利用できます。 " <!オブジェクト指向プログラミングの言語では、3ベッドルームおよび4ベッドルームのハウスクラスは、元のハウスクラスの特徴を継承しています。 また、3ベッドルームと4ベッドルームのハウスクラスは、元のハウスクラスを 拡張していると言うこともできます。 元のハウスクラスは、3ベッドルームおよび4ベッドルームのハウスクラスの
スーパークラスと呼ばれています。その静脈では、3寝室と4寝室の家階級は元の家階級の
サブクラス
です。別の言い方をすれば、元の家階級は3階と4階の家階級の親階級 と呼ばれます。 3ベッドルームまたは4ベッドルームのハウスクラスは、元のハウスクラスの 子クラス です。 言うまでもなく、あなたの家づくりの同僚は嫉妬しています。あなたの素晴らしいアイデアを聞くために、住宅建設業者の群衆があなたの周りに集まっています。だから、その瞬間にもう一つ爆弾を投げます:「サブクラスを使ってクラスを作成することで、将来的に青写真を再利用できます。誰かが来て5ベッドルームの家を望むなら、5ベッドルームの家の青写真を作って、元の家の青写真を広げることができます。我々は元の家の青写真にもう一度お金を費やす必要はありません。 "
"しかし、後列の同僚は次のように述べています。 "誰かが異なる1階のデザインを望んでいるとどうなりますか?元の家の青写真を捨てたり、元の青写真のいたるところに落書きを始めますか?それは大金を要するだろうか? " 自信を持って、元の家の青写真を崩す必要はありません。誰かがリビングルームにジャグジーを望む場合、新しいリビングルームのみを記述した新しい小さな青写真を作成し、これを リビングルームのジャグジーハウス の青写真と呼ぶことができます。次に、この新しい青写真は、家の残りの部分(リビングルームにない部分)についての情報を元の家の青写真を参照することができます。 "オブジェクト指向プログラミングの言葉では、居間のジャグジーの家の青写真は依然元の家の青写真を拡張しています 。ジャグジーの青写真はまだ元の家の青写真のサブクラスです。実際、スーパークラス、親クラス、および子クラスに関するすべての用語がそのまま適用されます。新しい唯一のことは、ジャグジーの青写真 が元の家の青写真のリビングルームの機能をオーバーライドすることです。 オブジェクト指向言語の前日、プログラミング世界はソフトウェア開発の危機を経験しました。プログラマーはコードを書いた後、新たなニーズを発見した後、コードをゴミ箱からゴミ箱に移動しなければなりませんでした。プログラマーが書いていたコードを再利用することができなかったので、これは繰り返し起こりました。オブジェクト指向プログラミングは、このすべてをより良いものに変えました。