ホームページ  >  記事  >  Java  >  Java 開発オブジェクト指向プログラミング (OOP) の論理プロセス

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

WBOY
WBOYオリジナル
2023-06-27 09:31:451282ブラウズ

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 までご連絡ください。