ホームページ Java &#&チュートリアル Java 開発オブジェクト指向プログラミング (OOP) の論理プロセス

Java 開発オブジェクト指向プログラミング (OOP) の論理プロセス

Jun 27, 2023 am 09:31 AM
java oop 論理的なプロセス

Java はオブジェクト指向プログラミング言語 (オブジェクト指向プログラミング、OOP) であり、オブジェクト指向プログラミングの考え方は、オブジェクトベース プログラミングを核とするソフトウェア開発手法です。オブジェクト指向プログラミングは、プログラマーがコードをより適切に整理および管理し、コードの再利用性、保守性、拡張性を向上させるのに役立ちます。この記事では、Java 開発におけるオブジェクト指向プログラミングの論理プロセスを紹介することで、読者が OOP の考え方と Java 言語をより深く理解できるように支援します。

  1. クラスとオブジェクトの定義

Java ではすべてがオブジェクトであるため、最初にオブジェクトを記述するクラスを定義する必要があります。以下に示すように、Java ではキーワード class を使用してクラスを定義できます:

public class Person {
    // 属性
    private String name;
    private int age;

    // 方法
    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return this.name;
    }

    public int getAge() {
        return this.age;
    }
}
ログイン後にコピー

クラスには属性とメソッドが含まれています。属性はオブジェクトの特性を記述するために使用され、メソッドはオブジェクトの特性を記述するために使用されます。オブジェクトの動作。上記のコードは、name と age の 2 つの属性と、setName、setAge、getName、getAge の 4 つのメソッドを含む Person クラスを定義します。クラスでは、アクセス制御 (パブリック、プロテクト、プライベート) を使用して、プロパティとメソッドの可視性を制限できます。

クラス定義が完了したら、オブジェクトを作成してこのクラスを使用できるようになります。 Java では、次に示すように、new キーワードを使用してオブジェクトを作成します。

Person person = new Person();
person.setName("张三");
person.setAge(20);
System.out.println(person.getName());
System.out.println(person.getAge());
ログイン後にコピー

上記のコードは、人オブジェクトを作成し、その名前と年齢属性を設定し、最後にその名前と年齢を出力します。ここでは、オブジェクトの作成プロセスが、クラスのコンストラクターを呼び出し、オブジェクトのメソッドを通じてプロパティを設定および取得することによって完了することがわかります。

  1. カプセル化と継承

OOP の考え方では、カプセル化と継承が重要な概念です。カプセル化とは、オブジェクトの状態情報をオブジェクト内に隠し、公開されたインターフェイスのみを提供して、オブジェクトのセキュリティと保守性を確保することを指します。継承とは、クラスが別のクラスを拡張することによってそのプロパティとメソッドを継承でき、これに基づいて独自のプロパティとメソッドを追加できることを意味します。

Java では、カプセル化と継承もキーワード (それぞれプライベート、プロテクト、パブリック) によって実装されます。これら 3 つのキーワードのスコープは、それぞれプライベート、プロテクト、パブリックです。クラス内のプロパティとメソッドについては、これらの 3 つのキーワードを使用して可視性を制限し、カプセル化を実現できます。サンプル コードは次のとおりです。

public class Person {
    // 私有属性
    private String name;
    private int age;

    // 公共方法
    public void setInfo(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getInfo() {
        return "姓名:" + this.name + ",年龄:" + this.age;
    }
}

public class Student extends Person {
    // 私有属性
    private int id;

    // 公共方法
    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return this.id;
    }
}
ログイン後にコピー

上記のコードでは、Person クラスと、その Person クラスを継承する Student クラスを定義します。 Person クラスは、name と age の 2 つのプライベート プロパティと、パブリック メソッド setInfo およびパブリック メソッド getInfo を定義します。これらは、name 属性と age 属性の設定と取得に使用されます。 Student クラスは、Person クラスのすべての属性とメソッドを継承し、新しいプライベート属性 ID と、生徒番号属性の設定と取得に使用される 2 つのパブリック メソッド setId および getId を追加します。

上記のコードを見ると、Person クラスの属性 name と age はプライベート属性として定義されており、クラス内のメソッドによってのみアクセスできるのに対し、パブリック メソッド setInfo と getInfo は公開されていることがわかります。外部から設定し、属性の値を取得します。 Student クラスでは、Person クラスを継承しているため、name 属性と age 属性も含まれていますが、Student クラス オブジェクトが name 属性と age 属性を設定する場合、継承された setInfo メソッドを通じてのみ設定でき、直接アクセスすることはできません。名前と年齢属性。

同時に、Student クラスに新しいプライベート属性 ID を追加し、属性値を設定および取得するためのパブリック メソッド setId および getId を定義しました。 Student クラスは id 属性を外部に公開しないため、アクセス制御はプライベートです。継承を通じて、Student クラスは親クラスのメソッド getInfo および setInfo を使用して、親クラスのプライベート属性の名前と年齢にアクセスできるため、親クラスのメンバーの再利用が実現します。

  1. ポリモーフィズム

ポリモーフィズムは、オブジェクト指向プログラミングにおけるもう 1 つの重要な概念です。これは、同じメソッドが複数の形式のパラメーターを受け入れ、それによって異なる動作を実現できることを意味します。ポリモーフィズムを実装するには 2 つの方法があります。

  • ポリモーフィズムを実装するための継承
  • ポリモーフィズムを実装するためのインターフェイス

ポリモーフィズムを実装するための継承では、親クラスの参照を通じてサブクラスのメソッドを呼び出し、動的呼び出しを実現します。サンプル コードは次のとおりです。

public class Person {
    public void say() {
        System.out.println("我是人类");
    }
}

public class Student extends Person {
    public void say() {
        System.out.println("我是学生");
    }
}

public class Teacher extends Person {
    public void say() {
        System.out.println("我是老师");
    }
}

public class Test {
    public static void main(String[] args) {
        Person person = new Person();
        Person student = new Student();
        Person teacher = new Teacher();

        person.say();
        student.say();
        teacher.say();
    }
}
ログイン後にコピー

上記のコードは、1 つの person クラスと、その person クラスを継承する 2 つの Student クラスと Teacher クラスを定義します。 Test クラスでは、Person オブジェクト、Student オブジェクト、Teacher オブジェクトをそれぞれ作成し、say メソッドを呼び出して対応する情報を出力しました。 Student クラスと Teacher クラスは両方とも person クラスから継承し、そのsay メソッドをオーバーライドするため、say メソッドが呼び出されるとき、オブジェクトの種類に応じて対応するメソッドが実行され、それによってポリモーフィックな効果が得られます。

インターフェイス実装ポリモーフィズムでは、インターフェイスを通じてメソッドのセットを定義し、さまざまな実装クラスが独自のニーズに応じてこのメソッドのセットを実装できるようにします。サンプル コードは次のとおりです。

public interface Animal {
    public void eat();
}

public class Cat implements Animal {
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

public class Dog implements Animal {
    public void eat() {
        System.out.println("狗吃肉");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal cat = new Cat();
        Animal dog = new Dog();

        cat.eat();
        dog.eat();
    }
}
ログイン後にコピー

上記のコードは、Animal インターフェイスと、このインターフェイスを実装する 2 つのクラス Cat および Dog を定義します。 Test クラスでは、Cat オブジェクトと Dog オブジェクトをそれぞれ作成し、その Eat メソッドを呼び出して対応する情報を出力しました。 Cat クラスと Dog クラスは両方とも Animal インターフェイスを実装し、その Eat メソッドをオーバーライドするため、eat メソッドが呼び出されると、オブジェクトの種類に応じて対応するメソッドが実行され、ポリモーフィックな効果が得られます。

要約

上記の論理プロセスの導入を通じて、オブジェクト指向プログラミングの考え方が Java 開発において非常に重要であることがわかります。これにより、プログラマはカプセル化、継承、ポリモーフィズムを通じてコードをより適切に整理および管理できるようになり、コードの再利用性、保守性、拡張性が向上します。 Java 開発者にとって、オブジェクト指向プログラミングのアイデアを習得すると、プログラム開発の成果がさらに向上します。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

See all articles