Java オブジェクト指向の基礎 (5 日目)

1.コンストラクター

1. コンストラクターの役割は何ですか?
クラスのオブジェクトを初期化し、オブジェクトのアドレスを返すために使用されます。(Car c = new Car());この Car(); は単純なコンストラクターです。
2. コンストラクタの定義形式は何ですか?
修飾子クラス名(仮引数リスト) { } 3. コンストラクタの分類(1) パラメータなしコンストラクタ(デフォルトで存在): オブジェクトを初期化する際、メンバ変数のデータはデフォルト値を採用します。(2) パラメータコンストラクタ:オブジェクトを初期化する際に、同時にオブジェクトに値を割り当てることができます。例えば:





public class Car {
    
    
    String CarName;
    double price;

    //  无参数构造器
    public Car(){
    
    
         //这里定义的内容
    }
    // 有参数构造器
    public Car(String n, String b){
    
    
        // 这里输入内容
    }
}

4. 初期化オブジェクトの
形式 型変数名 = new コンストラクタ;
Car c = new Car();
5. 注意事項
(1) 定義されたクラスは、記述されているかどうかにかかわらず、デフォルトでパラメータなしのコンストラクタを持ちます。
(2) パラメータ付きコンストラクタを定義すると、パラメータなしのコンストラクタは存在しなくなるため、パラメータなしのコンストラクタを自分で記述する必要があります。

2. まとめ

1. コンストラクターの役割は何ですか?
回答: クラスのオブジェクトを初期化し、オブジェクトのアドレスを返します。
2. コンストラクタの種類は何種類あり、それらの機能は何ですか?
回答: パラメーターなしのコンストラクター: オブジェクトを初期化するとき、メンバー変数のデータはデフォルト値を採用します。
パラメーター化されたコンストラクター: オブジェクトを初期化するときに、オブジェクトに値を割り当てることもできます。
3. 施工業者の注意点は何ですか?
定義されたクラスには、記述されているかどうかに関係なく、デフォルトでパラメーターのないコンストラクターがあります。
パラメーター化されたコンストラクターが定義されると、パラメーターなしのコンストラクターはなくなるため、この時点では独自のパラメーターなしのコンストラクターを作成する必要があります。

3. カプセル化

オブジェクト指向の 3 つの主要な特徴: カプセル化、統合、ポリモーフィズム。
カプセル化とは何ですか? 実装の詳細を隠し、適切なアクセス方法を公開します。(適切な隠蔽、適切な露出)
ここで、なぜカプセル化を使用するのかと疑問に思うかもしれません。
例を見てみましょう。
ここに画像の説明を挿入します
ここでカプセル化する必要がない場合は、年齢に -23 を割り当てても問題ありません。
1. カプセル化の実装手順
(1) 通常、メンバ変数は private キーワード修飾により隠蔽され、private 修飾後は現在のクラス内でのみメンバ変数にアクセスできます。
(2) 値と代入を公開するために、パブリックに変更されたパブリックゲッターおよびセッターメソッドを提供します。

public class Student {
    
    
    private int age;
    public int getAge(){
    
    
        return age;
    }
    public void setAge(int age){
    
    
        if (age >= 0 && age <= 200){
    
    
            this.age = age;
        }else{
    
    
            System.out.println("请检查年龄数值");
        }
    }
}

カプセル化の利点:
プログラム コードのセキュリティが強化されます。
適切にカプセル化すると、開発効率が向上し、プログラムの理解と保守が容易になります。

4. まとめ

1. パッケージングとは何ですか?一般的なパッケージングは​​どのように反映されますか?
(1) オブジェクト指向の 3 つの大きな特徴の 1 つ、合理的隠蔽と合理的露出。
(2) 通常、メンバー変数は private を使用して隠蔽されます。
(3) getter メソッドと setter メソッドを通じてアクセスを公開します。
2. カプセル化の利点は何ですか?
(1) プログラムコードのセキュリティを強化しました。
(2) 適切なカプセル化により、開発効率が向上し、プログラムの理解と保守が容易になります。

5.JavaBean

これはエンティティ クラスとして理解することもでき、そのオブジェクトを使用してプログラム内のデータをカプセル化できます。
1. 標準 JavaBean は以下の要件を満たしている必要があります。
(1) メンバ変数は private で変更されていること。
(2) 各メンバ変数に対応するsetXxx()/getXxx()を用意します。
(3) パラメータのないコンストラクタを提供する必要があります。

public class User {
    
    
    // 1、成员变量私有
    private String name;
    private double height;
    private double salary;

    // 2、必须提供成套的getter和setter方法暴露成员变量的取值和赋值

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

    public void setHeight(double height) {
    
    
        this.height = height;
    }

    public void setSalary(double salary) {
    
    
        this.salary = salary;
    }

    public String getName() {
    
    
        return name;
    }

    public double getHeight() {
    
    
        return height;
    }

    public double getSalary() {
    
    
        return salary;
    }
}

6. パラメーター化されたコンストラクターとパラメーターなしのコンストラクターを使用してオブジェクトを作成する

public class Test1 {
    
    
    public static void main(String[] args) {
    
    

        //1、调用无参数构造器创建对象
        User U = new User();
        u.setName("吴彦祖");
        u.setHeight(185.2);
        u.setSalary(1000);
        System.out.println(u.getName());
        System.out.println(u.getHeight());
        System.out.println(u.getSalary());

        // 2、调用有参数构造器创建对象
        User u2 = new User(name "anganlbaby", height 169.5 ,sarary 1000);
        System.out.println(u2.getName());
        System.out.println(u2.getHeight());
        System.out.println(u2.getSarary());
    }
}

概要: ダークホース プログラマーの Java コースの初日、彼はこれから毎日学んだ知識を更新します。

おすすめ

転載: blog.csdn.net/tyloonulinuli/article/details/121621853