ホームページ > Java > &#&チュートリアル > オブジェクト指向の概念: 最新プログラミングの基礎 - パート 01

オブジェクト指向の概念: 最新プログラミングの基礎 - パート 01

Patricia Arquette
リリース: 2025-01-18 18:04:11
オリジナル
903 人が閲覧しました

手続き型プログラミングからオブジェクト指向プログラミングへの進化

手続き型プログラミング: 財団 (1950 年代~70 年代)

基本的なアプローチである手続き型プログラミングでは、問題をより小さな自己完結型のプロシージャまたはサブルーチンに順次分割することで問題に取り組みました。

C プログラミング言語の初期の反復は、手続き型プログラミングの例でした。 このアプローチを示す基本的な C プログラム:

<code class="language-c">#include <stdio.h>

void calculateTotal() {
    int price1 = 10, price2 = 20, total;
    total = price1 + price2;
    printf("Total: %d\n", total);
}

int main() {
    calculateTotal();
    return 0;
}</code>
ログイン後にコピー
ログイン後にコピー

手続き型プログラミングは小規模なプロジェクトには効果的ですが、ソフトウェアの複雑さが増すにつれて制限に直面しました。 これらの制限には次のものが含まれます:

  1. 冗長コード: プログラム全体で同様のロジックが頻繁に繰り返されます。
  2. メンテナンスの課題: 変更には複数の場所での変更が必要になることが多く、エラーが発生する可能性が高くなります。
  3. スケーラビリティのボトルネック: 大規模で複雑なソフトウェア システムの拡大するニーズに適応することが困難です。
  4. 現実世界のモデリングの欠陥: データと操作が分離されたままであり、現実世界のエンティティ (例: 「銀行口座」、「車両」) の正確な表現を妨げていました。

オブジェクト指向プログラミング (OOP) へのパラダイム シフト

ソフトウェアの複雑さの増大により、手続き型プログラミングの欠点が明らかになり、オブジェクト指向プログラミング (OOP)の出現を促しました。 OOP は、現実世界のエンティティをモデル化し、オブジェクト として知られる単一ユニット内のデータと動作を統合することにより、ソフトウェア開発に革命をもたらしました。

コア OOP コンセプト

1.カプセル化 ?️

カプセル化では、データ (属性) とそのデータを操作するメソッド (関数) が 1 つの単位 (通常は クラス) に統合されます。このバンドルにより、データ セキュリティモジュール性が促進されます。

Object-Oriented Concepts: The Foundation of Modern Programming - Part 01

アクセス指定子 (プライベートやパブリックなど) はデータ アクセスを制御します:

  • プライベート変数: 機密データへの外部アクセスを制限します。
  • パブリック メソッド: プライベート データを操作および変更するための制御された方法を提供します。
カプセル化の重要性:
  • データ保護: プライベート アクセス指定子は、制御されていない直接のデータ変更を防ぎます。
  • モジュール性: 内部の変更は、オブジェクトと対話する外部コードには影響しません。
例:

テレビのリモコンは、カプセル化を完全に示しています。 ボタンはパブリック メソッドを提供しますが、各ボタンの機能の内部動作は非表示 (プライベート) のままです。


2.抽象化 ?

システムの複雑さが増すにつれて、抽象化が重要になります。 抽象化により、複雑な詳細が隠蔽され、重要な機能のみが露出されるため、インターフェイスが簡素化されます。 これにより、ユーザーと対話するオブジェクトの複雑さが軽減されます。

例:

の運転は抽象化の例です。 ドライバーは、エンジンやトランスミッションの内部機構を理解する必要なく、ステアリング ホイール、アクセル、ブレーキ、ギアを使用します。 これらの詳細は抽象化されています。


OOP での抽象化の実装

抽象クラス:

抽象クラスは共通の動作を定義しますが、サブクラスが特定の実装を提供できるようにします。 たとえば、Shape クラスには抽象 calculateArea() メソッドが含まれる場合があります。 CircleRectangle などのサブクラスは、独自の面積計算を提供します。

インターフェース:

インターフェイスは、実装の詳細を指示することなく、クラスが特定の動作を実装することを保証します。 IPlayable インターフェースには、play() メソッドと pause() メソッドが必要な場合があります。 AudioPlayerVideoPlayer などのクラスは、これらのメソッドを個別に実装します。


コード例 (説明)

<code class="language-c">#include <stdio.h>

void calculateTotal() {
    int price1 = 10, price2 = 20, total;
    total = price1 + price2;
    printf("Total: %d\n", total);
}

int main() {
    calculateTotal();
    return 0;
}</code>
ログイン後にコピー
ログイン後にコピー

結論?

手続き型プログラミングからオブジェクト指向プログラミングへの移行により、カプセル化抽象化などの強力な概念が導入され、その結果、より管理しやすく、スケーラブルな、モジュール型のソフトウェアが実現しました。 OOP は、現実世界のエンティティを反映するオブジェクトに焦点を当てることで、よりクリーンで保守しやすいコードを実現します。 OOP を採用すると、より効率的で洗練されたソフトウェア設計が実現します。 ✨

以上がオブジェクト指向の概念: 最新プログラミングの基礎 - パート 01の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート