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 コースの初日、彼はこれから毎日学んだ知識を更新します。