Articles

オブジェクト指向プログラミング言語の概要:ガイド

オブジェクト指向プログラミング言語は、データとコードの両方を含むオブジェク オブジェクト指向プログラミングの原則は、カプセル化、抽象化、多態性、および継承です。

オブジェクト指向プログラミング(OOP)言語は、私たちが見てどこにでもあります。 今日のコンピューティングの世界を構成する最も広く使用されているコーディング言語の多くは、オブジェクト指向です。 実際には、多くのコンピュータプログラムとweb上のコンテンツの多くは、高レベルのオブジェクト指向言語上に構築されています。 オブジェクト指向言語がどのように機能するのか、なぜそれらが有用であるのかを理解することは、コンピューティングのほぼすべてのキャリアにとって重要です。

この記事では、オブジェクト指向言語とは何かを見て、その長所と短所を調べます。 また、今日使用されている最も人気のあるOOP言語のいくつかの候補リストを見てみましょう。

プログラミング言語とは何ですか?

プログラミング言語は、プログラマがコンピュータに実行する命令のセットを与えることを可能にする一連のルールと手順です。 すべてのプログラミング言語は、一度学んだ、あなたはそれが実行すべきタスクをコンピュータに伝えることができ、独自の構文を持っています。div>

あなたのbootcampマッチ
  • キャリアカルマは、トップテックブートキャンプであなたと一致します
  • 排他的な奨学金と準備コースを取得

このように考えてください。 英語は、英語を話す人とコミュニケーションをとることを可能にする言語です。 あなたが英語の基本的なルールを知っているとき、あなたはそれらの同じルールを理解している他の誰と話すことができます。 しかし、コンピュータは、そのことについては、英語や他の”伝統的な”言語を理解することはできません。

オブジェクト指向プログラミング言語とは何ですか?

コンピュータは強力なマシンです。 コンピュータを使うと、私達は数を非常にすぐに計算してもいく私達は多くの適用のためのすばらしいプログラムを作り出せます。 しかし、この力を利用するために、我々はコンピュータと通信する必要があり、手動で1と0を入力するよりも苦痛の少ないものです。

したがって、私たちはすでに書かれているマシンコードによって支えられているプログラミング言語を持っています。 しかし、マシンコードからさらに削除されるほど、より抽象的で特殊な言語がデータを処理するようになります。 私たちは非常に多くの言語を持っている理由です;誰の言語は完璧ではありません,そして、彼らはすべての異なると重複するアプリケーシ

プログラミングパラダイム

このノートでは、プログラミング言語は、多くの場合、そのプログラミングパラダイムによっ プログラミングパラダイムは、データを見てアクセスする1つの方法です。 二つの主要なパラダイムは、オブジェクト指向と機能ですが、より多くのものがあります(上記の基礎となる原則を含むものもあります)。

オブジェクト指向プログラミングは、データ(プロパティまたは属性)とコード(プロシージャまたはメソッド)の両方を含むデータ構造であるオブジェク オブジェクトは’this’または’selfで自分自身を変更することができます。 ほとんどのOOP言語では、ほとんどすべてが値と実行可能コードの両方を持つことができるオブジェクトです。 各オブジェクトは一意であり、別のオブジェクトのコピーであっても、その変数は他のオブジェクトの変数とは異なる場合があります。

オブジェクト指向ソフトウェア設計のオブジェクトは、実際のオブジェクトのように考えることがで 時計のようなオブジェクトを考えてみてください。 その時計には特性があります。 それは金属で作られています、それは黒です、それは特定の重量を持っています。 しかし、そのオブジェクトも物事を行います。 それは時間を表示し、また手の位置を変えるためにギヤの回転によってそれ自身に影響を与えることができます。

オブジェクトのもう一つの特徴は、時計が機能するためにどのように機能するかを常に知る必要がないということです。 時計がうまく構築されていると仮定すると、内部の仕組みに干渉することなく、時間を確実に伝えます。

オブジェクト指向言語は、実世界のオブジェクトに似たオブジェクトを持っています。 それらは特性と機能を持つことができます。 彼らはまた、特定の原則に従う傾向があります。

オブジェクト指向プログラミングの原則

オブジェクト指向言語には四つの原則があります。 これらの4つの原則は、それらを定義し、それらを大幅に効率的にする共通の特性です。 オブジェクト指向プログラミングの四つの柱と呼ぶ人もいます。

オブジェクト指向プログラミングの四つの柱は次のとおりです。

  1. カプセル化
  2. 抽象化
  3. 継承
  4. ポリモーフィズム

四つの原則

これらの四つの原則をより深く探求してみましょう。

  • Encapsulation–カプセル化は、データを関数にバインドする概念であり、そのデータを安全に保つためのセキュリティ機能として機能します。 たとえば、多くのOOP言語では、そのデータにアクセスするためにデータを所有するクラス内の特定のメソッド以外のものを防ぐことができます。 これは、特定のデータを安全に保つために明示的に行われることがよくあります。
  • Abstraction–抽象化は、あなたがあまりにも頻繁に一つのことをやっている場合、それはそれ自身のエンティティでなければならないという考えです。 たとえば、プログラマが異なるオブジェクトに対して同じ関数を繰り返し書き直している場合、その関数を抽象化して独自のエンティティにすることができます。
  • 継承–継承はそれがどのように聞こえるかであり、ほとんどの場合、”is a”関係として定義されています。 これにより、特定のクラスを他のクラスの傘下に置くことができます。 これらのクラスは、そのクラスから情報と機能を継承することができますが、その機能を拡張することもできます。 すでに他のクラスで入力したコードを再利用できます。
  • 多型–多型は、複数の形状を取ることを意味します。「OOP言語の意味では、オブジェクトが何であるかに応じて異なる方法でオブジェクトを処理する能力を指します。 これにより、派生クラスに基づいてオブジェクトを処理するためのさまざまなメソッドを定義できます。 たとえば、何かのサイズを見つける必要がある場合は、それが何であるかに基づいて測定方法を変更することがあります。 それが木の板なら、私はインチのそれを測定する。 これは、私が重量で測定する水の量とは対照的です。 多態性を利用すると、どちらかのオブジェクトを受け入れても正気の測定値を与える関数を作成できます。

人気のあるオブジェクト指向プログラミング言語

Java、Python、C++、Lisp、Perlは、すべての人気のあるオブジェク クラスとオブジェクトパラダイムを使ったプログラミングをサポートしています。

最も人気のあるオブジェクト指向言語の五つは次のとおりです:

  1. Java
  2. Python
  3. C++
  4. Ruby
  5. C#
  • Java–Javaはどこにでもあり、最も使用されている言語の1つであり、最も需要の高い言語の1つです。 Javaのモットーは”一度書く、どこでも実行する”であり、それは実行されるプラットフォームの数と使用される場所に反映されています。
  • Python–Pythonは汎用であり、多くの場所で使用されています。 しかし、Pythonは機械学習とデータ科学において強力な足場を持っています。 それはその新しく成長を続ける分野のための好ましい言語の一つです。
  • C++–C++は、クラスの機能とオブジェクト指向のパラダイムを備えたCの速度を持っています。 これは、コンパイルされた信頼性の高い、強力な言語です。 実際には、他の言語のコンパイラやインタプリタを構築するためにも使用されます。
  • Ruby–Rubyは別の汎用プログラミング言語です。 それは簡単にするために建てられました。 そうは言っても、Rubyは信じられないほど強力な言語です。 Rubyの生みの親であるMatz松本幸弘氏は、「Rubyは見た目はとてもシンプルですが、人間の体と同じように内部はとても複雑です。”
  • C#–C#は、Microsoftによって設計されたプログラミング言語です。 C#は、多くのwebアプリ、ゲーム、デスクトップアプリ、モバイルアプリと並んでMicrosoft.NET frameworkを強化しています。

上で説明していない他のオブジェクト指向言語があります。 Perl、Objective-C、Dart、Lisp、JavaScript、およびPHPはすべてオブジェクト指向でもあり、オブジェクト指向の原則をサポートしています。

オブジェクト指向プログラミング言語の長所と短所

OOP言語は強力ですが、すべての状況に役立つわけではなく、考慮する必要がある

長所

再利用性

オブジェクト指向コードは設計上非常にモジュール化されています。 多態性と抽象化のために、何度も何度も使用できる1つの関数を作成できます。 また、継承で既に記述されている情報や機能をコピーすることもできます。 これは時間を節約し、複雑さを減らし、スペースを節約し、そして私達の指でより軽い負荷をコーディングすることを作る。

並列開発

プログラムの一部が互いに別々に開発され、オブジェクト指向の原則の下でまだ機能するのに十分な基礎があります。 これにより、大規模な開発チームの同時開発がはるかに容易になります。

メンテナンス

コードのほとんどは、すべてではないにしても、一箇所にあり、呼び出されて再利用されているため、そのコードを保守する方がはるかに簡単です。 関数が呼び出される百の異なるインスタンスを個別に修正する代わりに、一つのモジュール式および多態性関数を修正することができます。

Security

ほとんどの言語にはいくつかのセキュリティがありますが、セキュリティはカプセル化で組み込まれているため、オブジェクト指向 他のメソッドやクラスはデフォルトでプライベートデータにアクセスできず、OOP言語で書かれたプログラムはより安全です。

モジュール性

オブジェクト指向プログラミング言語は、アプリケーションをオブジェクトとクラスに分割します。 これはあなたの適用にモジュール構造を与えるので有利である。 モジュラーコードは読みやすくなります。 従って、維持することは容易です。

Cons

しばしば乱雑

オブジェクト指向言語は非常にカスタマイズ可能でスケーラブルであるため、コードがどのように動作するかを理解していないことが容易になる可能性があります。 OOPコードは多くの方法で機能できます。 OOPでプログラミングするための多くの方法論は、他の方法論ではうまく機能しない、非効率的である、または使用が困難です。

より多くの計画が必要です

これらの言語は非常にモジュール化され、スケーラブルであるため、事前に明確な設計なしで入ることは災害のレ 効率的なプログラムを作成するには、他のプログラミングパラダイムよりも堅実な計画が必要です。

Opacity

これはconと同じくらいプロです。 彼らは情報を受け取り、(通常)信頼できる結果を返すことができます。 その結果、彼らはブラックボックスになってしまう可能性があり、彼らがしていることは常に明らかではないことを意味します。 プログラマはおそらくそのオブジェクトを作成し、それが何をするかを知っていますが、OOP言語は他の言語ほど透過的ではありません。

パフォーマンス

オブジェクト指向言語は、多くの場合、パフォーマンスのヒットを取ります。 OOP言語で作成されたプログラムは、多くの場合、関数型言語よりも大きく、実行するために多くの計算努力を必要とします。 しかし、これは常に真実または重要ではありません。 C++はOOP言語ですが、利用可能な最速の言語の1つです。 同じノートでは、速度は常に重要ではありません。 速度の違いは、巨大または複雑な計算を処理する場合、または極端な速度が必要な場合にのみ明らかになります。今、あなたはオブジェクト指向言語が何であるか、それが何のために良いのか、そして最も人気があるのかをしっかりと把握しています。

今、あなたは これらの言語でのプログラミングは、それが有益であると同じくらい楽しいことができ、開発のあなたのキャリアはわずか数歩です。