Java 言語によるオブジェクト指向プログラミング設計の概要

王林
リリース: 2023-06-10 08:30:15
オリジナル
1277 人が閲覧しました

高級プログラミング言語として、Java 言語は、基本的なプログラミング パラダイムとしてオブジェクト指向プログラミング (略して OOP) を採用しています。プログラミングの考え方と方法として、オブジェクト指向プログラミングはコンピューター サイエンスの分野で最も重要なプログラミング モデルとなっています。この記事では、Java言語によるオブジェクト指向プログラミングの設計について紹介します。

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

オブジェクト指向プログラミングは、オブジェクトベースのプログラミング手法であり、その中心的な考え方は、プログラムを複数のモジュールに分解し、各モジュールが独自のデータと動作を持つことです。各モジュールはオブジェクトであり、オブジェクトは互いのメソッドを呼び出して連携して特定のタスクを完了します。

オブジェクト指向プログラミングの中核となる概念は、「クラス」と「オブジェクト」です。クラスはオブジェクトのプロパティと動作を定義し、オブジェクトはクラスのインスタンスです。クラスを使用すると、すべて同じプロパティと動作を持つ複数のオブジェクトを作成できます。このプログラミング方法では、コードの再利用、カプセル化、メンテナンスを効果的に実現でき、プログラムの読みやすさとメンテナンス性が向上します。

Java 言語によるオブジェクト指向プログラミングは、Java 仮想マシン (JVM) に基づいています。JVM は、さまざまなプラットフォーム上で実行できる仮想マシンです。したがって、Java プログラムは、Windows、Mac、Linux などのさまざまなオペレーティング システム上で実行できます。

2. Java のオブジェクト指向プログラミング

Java のオブジェクト指向プログラミングには主に次の側面が含まれます:

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

" Java の「クラス」は、特定の種類のオブジェクトのステータスと動作を記述するために使用されるテンプレートです。 「オブジェクト」はクラスのインスタンスであり、クラスによって記述されたプロパティとメソッドを持ちます。 Java では、クラスは class キーワードによって定義されます。

たとえば、Person クラスは次のように定義されています。

public class Person{
    private String name; // 姓名
    private int age; // 年龄
    
    // 构造方法
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
    
    //获取姓名
    public String getName(){
        return name;
    }
    
    //获取年龄
    public int getAge(){
        return age;
    }
    
    //输出信息
    public void printInfo(){
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}
ログイン後にコピー

上記のプログラムでは、名前と年齢の属性と、名前、年齢、および出力を取得するためのメソッドが含まれる Person クラスを定義します。情報の方法。使用する場合は、次のコードでオブジェクトを作成できます。

Person p = new Person("张三", 20);
ログイン後にコピー

このうち、 new キーワードは、 Person クラスのインスタンス、つまり Person オブジェクトを作成するために使用されます。

2. カプセル化と継承

Java におけるカプセル化 (カプセル化) とは、オブジェクトのデータと動作をパッケージ化し、内部実装の詳細を外部から隠すプロセスを指します。 Java では、カプセル化はアクセス制御キーワード private、public、protected などによって実現されます。

継承とは、あるクラスが別のクラスのプロパティとメソッドを継承することを意味します。 Java では、継承はキーワード extends を通じて実装されます。サブクラスは親クラスのプロパティとメソッドを継承でき、親クラスのメソッドをオーバーライド (Override) することもできます。

以下は継承の例です:

public class Student extends Person{
    private String school; // 学校

    // 构造方法
    public Student(String name, int age, String school){
        super(name, age);
        this.school = school;
    }
    //获取学校
    public String getSchool(){
        return school;
    }
    //输出信息
    public void printInfo(){
        super.printInfo(); // 调用父类的printInfo方法
        System.out.println("所在学校:" + school);
    }
}
ログイン後にコピー

上記のプログラムでは、People クラスの属性とメソッドを継承する Student クラスを定義し、school 属性と getSchool を追加します。 、printInfoメソッド。

3. ポリモーフィズム

Java におけるポリモーフィズムとは、同じ動作の異なる表現を指します。 Java では、ポリモーフィズムは継承とオーバーライドによって実現されます。

以下はポリモーフィックな例です:

public class Test{
    public static void main(String[] args){
        Person p = new Person("张三", 20);
        p.printInfo();
        Student s = new Student("李四", 18, "北大");
        s.printInfo();
        p = s; // 多态
        p.printInfo();
    }
}
ログイン後にコピー

上記のプログラムでは、Person クラスと Student クラスを定義し、それぞれに独自の printInfo メソッドがあります。 main メソッドでは、まず person オブジェクト p を作成してその情報を出力し、次に Student オブジェクト s を作成してその情報を出力します。次に、「p = s」を通じてポリモーフィズムを実装し、p の printInfo メソッドを再度呼び出すと、実際に呼び出されるのは Student クラスの printInfo メソッドです。

4. インターフェイス

Java のインターフェイスは抽象メソッドのセットであり、インターフェイス内のすべてのメソッドは抽象メソッドであり、特定の実装はありません。インターフェイスはクラスによって実装でき、クラスは複数のインターフェイスを実装できます。 Java では、インターフェースはキーワードインターフェースを通じて定義されます。

以下はインターフェイスの例です:

interface IShape{
    public abstract double area();
}

class Circle implements IShape{
    private double radius;
    public Circle(double radius){
        this.radius = radius;
    }
    public double area(){
        return Math.PI * radius * radius;
    }
}

class Rectangle implements IShape{
    private double width, height;
    public Rectangle(double width, double height){
        this.width = width;
        this.height = height;
    }
    public double area(){
        return width * height;
    }
}

public class Test{
    public static void main(String[] args){
        IShape c = new Circle(2.0);
        IShape r = new Rectangle(3.0, 4.0);
        System.out.println("圆面积:" + c.area());
        System.out.println("矩形面积:" + r.area());
    }
}
ログイン後にコピー

上記のプログラムでは、IShape インターフェイスと、IShape インターフェイスを実装する 2 つのクラス Circle と Rectangle を定義します。 main メソッドでは、Circle オブジェクトと Rectangle オブジェクトを作成し、それぞれの area メソッドを呼び出します。

概要

Java 言語は、基本的なプログラミング パラダイムとしてオブジェクト指向プログラミング (OOP) を使用し、クラスとオブジェクト、カプセル化と継承、ポリモーフィズムとインターフェイスなどのメカニズムを通じてプログラム設計を実装します。オブジェクト指向プログラミング手法を使用して作成されたプログラムは、保守性、拡張性、およびコードの再利用性に優れています。

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

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