オブジェクト指向プログラミング (OOP) を理解する

王林
リリース: 2024-08-25 20:31:32
オリジナル
729 人が閲覧しました

Understanding Object-Oriented Programming (OOP)

オブジェクト指向プログラミング (OOP) は Java の基本概念であり、モジュール式で再利用可能でスケーラブルなコードの作成を容易にします。この投稿では、クラス、オブジェクト、継承、カプセル化、ポリモーフィズム、抽象化などの OOP の中核原則について説明します。

1.オブジェクト指向プログラミングの概要

OOP は、データとそのデータを操作するメソッドを含むことができる「オブジェクト」の概念に基づいたプログラミング パラダイムです。コードをオブジェクトに整理することで、より管理しやすく、理解しやすいプログラムを作成できます。

OOP の 4 つの重要な原則は次のとおりです:

  • カプセル化
  • 継承
  • ポリモーフィズム
  • 抽象化

Java のコンテキストでこれらの概念をそれぞれ調べてみましょう。

2.クラスとオブジェクト

2.1 クラスとは何ですか?

Java のクラスは、オブジェクトを作成するための設計図です。クラスから作成されたオブジェクトが持つプロパティ (フィールド) と動作 (メソッド) を定義します。クラスは、オブジェクトの構造と機能の概要を示すテンプレートと考えてください。

クラスの例:

リーリー

この例では、Car クラスには、マーク、モデル、年という 3 つのフィールドと、1 つのメソッド startEngine() があります。

2.2 オブジェクトとは?

オブジェクトはクラスのインスタンスです。クラスを定義したら、そのクラスから複数のオブジェクトを作成し、それぞれのフィールドに独自の一意の値を設定できます。

オブジェクトの作成例:

リーリー

この例では、myCar は Car クラスのオブジェクトであり、そのフィールドに特定の値が割り当てられています。

チャレンジ 1:
タイトル、著者、ページのフィールドを持つ Book という名前のクラスを作成します。 Book クラスのオブジェクトを作成し、そのフィールドを設定して、本の詳細を出力します。

3.カプセル化

カプセル化とは、データ (フィールド) とそのデータを操作するメソッドを 1 つのユニットまたはクラスにバンドルし、オブジェクトのコンポーネントの一部へのアクセスを制限する手法です。これは、アクセス修飾子 (プライベート、パブリック、保護) を使用して実現されます。

カプセル化は、オブジェクトの内部状態を意図しない干渉や誤用から保護するのに役立ちます。

カプセル化の例:

リーリー

この例では、 Person クラスはフィールドをプライベートにすることでカプセル化し、それらのフィールドにアクセスして変更するためのパブリック メソッド (getName、setName、getAge、setAge) を提供します。

チャレンジ 2:

フィールドをプライベートにし、フィールドごとにパブリックの getter メソッドと setter メソッドを作成することで、Book クラスにカプセル化を追加します。

4.継承

継承は、あるクラスが別のクラスのプロパティとメソッドを継承できるようにするメカニズムです。継承するクラスを「サブクラス」または「子クラス」といい、継承元のクラスを「スーパークラス」または「親クラス」といいます

継承によりコードの再利用性が促進され、クラス間に自然な階層が確立されます。

継承の例:


リーリー

この例では、Dog クラスは Animal クラスから Eat メソッドを継承し、独自のメソッド bark もあります。

チャレンジ 3:

Book クラスを継承するサブクラス EBook を作成します。新しいフィールド fileSize とメソッド download() を EBook クラスに追加します。

5.ポリモーフィズム

ポリモーフィズムにより、異なるクラスのオブジェクトを共通のスーパークラスのオブジェクトとして扱うことができます。これは、メソッドのオーバーライドとインターフェイスを通じて実現できます。

5.1 メソッドのオーバーライド

メソッドのオーバーライドにより、サブクラスは、そのスーパークラスですでに定義されているメソッドの特定の実装を提供できます。

ポリモーフィズムの例:


リーリー

この例では、myAnimal の型が Animal であっても、Cat 型のオブジェクトを参照し、Cat のオーバーライドされたサウンド メソッドが呼び出されます。

チャレンジ 4:

Book クラスの toString メソッドをオーバーライドして、本の詳細の文字列表現を返します。

6.抽象化

抽象化には、システムの複雑な実装の詳細を隠し、必要な部分のみを公開することが含まれます。これは、抽象クラスとインターフェイスを使用して実現できます。

6.1 抽象クラス

抽象クラスはインスタンス化できず、サブクラスによって実装する必要がある抽象メソッド (本体のないメソッド) を含む場合があります。

抽象化の例:


リーリー

この例では、Shape は抽象メソッドdraw を備えた抽象クラスであり、Circle クラスによって実装されます。

Challenge 5:
Create an abstract class Device with an abstract method powerOn. Create a subclass Smartphone that implements the powerOn method.

7. Summary

In this post, we explored the key concepts of Object-Oriented Programming in Java: classes, objects, inheritance, encapsulation, polymorphism, and abstraction. Understanding these principles is crucial for building complex and efficient Java applications.

Feel free to try out the examples and challenges provided. If you have any questions or need further clarification, leave a comment below!

以上がオブジェクト指向プログラミング (OOP) を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!