1つは、オブジェクト指向プログラミングの基礎です。
(1)オブジェクト指向の概要
1.オブジェクトは抽象的な概念です。つまり、存在するものはすべて、世界のすべてのものがオブジェクトです。!
2.クラスは、オブジェクトのプロパティと動作をカプセル化するキャリアです。逆に、同じプロパティと動作を持つエンティティのクラスは、クラスと呼ばれます。
特徴
1.カプセル化
オブジェクトのプロパティと動作をカプセル化します。キャリアはクラスです。クラスは通常、実装の詳細をクライアントから隠します。これがカプセル化の考え方です。
2.継承
継承は、再利用を実現するための重要な手段です。継承を通じて、サブクラスは、固有のプロパティと動作を追加しながら、親クラスのプロパティと動作を再利用します。
3.多形性
親クラスオブジェクトをサブクラスに適用する特徴は多形性です。サブクラスは親クラスの特徴を継承しますが、独自の特徴もあり、さまざまな効果を発揮できます。これが多形性の構造です。
(2)クラスとオブジェクト
1.メンバー変数
2.メンバー方式
3.工法
工法とは?
プライベートコンストラクター
4.ローカル変数
ローカル変数の有効範囲:
注意: ①javaの異なるエリアに同じ名前の変数が存在する可能性があります;②同じエリアに同じ名前とタイプのローカル変数を定義することはできません
5.このキーワード
変数がパラメーターと同じ名前の場合はどうなりますか?
そこで、このキーワードを導入しました
注意: this()ステートメントの前に他のコードはありません
6、静的キーワード
静的変数
静的定数
静的メソッド
静的コードブロック[クラスオブジェクトが宣言されると、実行されます]
2.オブジェクト指向のコアテクノロジー
(1)クラスのカプセル化
オブジェクトの属性と動作は封印されており、オブジェクトの属性と動作を封印するキャリアはクラスです。クラスは通常、実装の詳細を顧客から隠します。これがカプセル化のアイデアです。
(2)クラスの継承、キーワードの拡張
1.継承2.extends
キーワード
javaで、クラスに別のクラスを継承させるには、extendsキーワードを使用する必要があります。
構文:クラス1拡張クラス2
注:Javaは単一の継承のみをサポートします。
3.メソッドの書き換え
親クラスのメンバーは子クラスに継承されます。親クラスのメソッドが子クラスに適用されない場合は、子クラスの親クラスのこのメソッドをオーバーライドする必要があります。
継承には特別な書き換え方法もあります。サブクラスと親クラスのメンバーメソッドの戻り値、メソッド名、パラメータの種類、番号はまったく同じです。唯一の違いはメソッドの内容です。この特別な書き換え方法は次のとおりです。リファクタリングと呼ばれます。
superキーワード
superキーワードは親オブジェクトを表し、最初に配置する必要があります。
4.すべてのクラスの親クラス-オブジェクト
注意:ObjectクラスのgetClass()、notify()、notifyAll()、wait()などのメソッドは、最終タイプとして定義されているため、オーバーライドできません。
getClass()メソッド
getClassメソッドは、オブジェクトが実行されるとClassインスタンスを返し、Classインスタンスを介してgetName()メソッドを呼び出してクラスの名前を取得します。
getClass().getName;//获取名称
toString()メソッド
toString()メソッドは、オブジェクトの文字列表現を返します。特定のクラスオブジェクトを出力すると、オーバーライドされたtoString()メソッドが自動的に呼び出されます。
equals()メソッド
Objectクラスのequals()メソッドは、 2つのオブジェクトの参照アドレスが等しいかどうかを比較します。
(3)クラスの多形性[1つの定義、複数の実現]
クラスの多態性は、2つの側面に反映されます。①はメソッドのオーバーロード、②はクラスの上下変換、
1。メソッドのオーバーロード
2.
クラスの上下変換は、サブクラスオブジェクトを親タイプのオブジェクトに割り当てることです。この手法は「アップ
キャスティング」と呼ばれます。注:表示タイプの変換とダウンキャスティングを使用する場合、親オブジェクトを変換するサブクラスオブジェクトのタイプをコンパイラーに指定する必要があります。3。instanceof
キーワード[親を判断するクラスオブジェクトがサブクラスのインスタンスであるかどうか]
instanceofキーワードを使用する式は、ブール値を返します。
(4)抽象クラスとインターフェース
抽象クラス
Javaでは、具体的な言語で定義できない同様のグラフィッククラスは抽象クラスと呼ばれます[抽象クラスはオブジェクトインスタンスを生成できません]
抽象クラスと抽象メソッド[継承されたクラスは抽象メソッドをオーバーライドする必要があります]:
具体的な実装:
抽象クラスと抽象メソッドを使用します次の原則に従うする必要があります
①Inに抽象クラスは、抽象メソッドは、または含まれていてもいなくてもよいが、抽象メソッドを含むクラスは、抽象クラスとして定義されなければならない。
②Abstractクラスを直接インスタンス化することはできない。
③Abstractクラスが継承された後、サブクラスは抽象クラスのすべての抽象メソッドを書き換える必要があります
。④抽象クラスを継承するサブクラスも抽象クラスとして宣言されている場合、親クラスのすべての抽象メソッドを書き換える必要はありません。
インターフェイスとは何ですか?
インターフェイスは抽象クラスの拡張であり、インターフェイス内のすべてのメソッドにはメソッド本体がありません
。implementsはクラスであり、インターフェイスの実装に使用されるキーワードであり、インターフェイスで定義された抽象メソッドの実装に使用されます。
説明:インターフェースで定義された変数は自動的に静的で最終的なものです。したがって、インターフェースで変数を定義するときは、初期化する必要があり、インターフェースを実装するサブクラスは、インターフェースで変数を再割り当てできません。
インターフェースの宣言と実装クラス
複数の継承(インターフェイスの最大の利点)
抽象クラスとインターフェースを区別する
抽象クラスとインターフェースの5つの違い:
アクセス制御
1.アクセス制御文字
注意:クラスを宣言するときに、パブリック修飾子を使用してクラスのアクセス許可を設定しない場合、このデフォルトがデフォルト(デフォルト)の変更になります。
アクセス制御シンボルを使用する場合は、次の原則に従う必要があります
。①ほとんどのトップレベルクラスは、パブリック修飾子
2、javaクラスパッケージ
3、finalキーワード[最終ファイナル]を使用します①final
によって変更されたクラス、メソッド、および変数は変更できません;
②変更された最終クラスは継承できません;
③メソッドの最終変更は書き換えられません;
④finalキーワードを使用して変数を変更でき、最終変数は一度変更された後、変数の値を変更できません。通常は最終変更です。変数は定数と呼ばれます。
(5)内部カテゴリ
匿名内部クラス:匿名内部クラス
の機能は、一度だけ使用する必要があることです。つまり、匿名内部クラスは再利用できません。
構文は次のとおりです。
new A{
...//匿名内部类的类体
};
abstract class FreshKeepingFilm {
// 创建“保鲜膜”抽象类
abstract void pack(); // 定义抽象的包装方法
}
public class Sausage {
// 创建香肠类
public static void main(String[] args) {
new FreshKeepingFilm() {
// 创建匿名内部类FreshKeepingFilm的对象
@Override
void pack() {
// 重写抽象的包装方法
System.out.println("缠上保鲜膜为香肠保鲜");
}
}.pack(); // 匿名内部类FreshKeepingFilm的对象调用重写抽象的包装方法
}
}
匿名内部クラスを使用する場合は、次の原則に従う必要があります
。①匿名クラスには構築方法がありません。②匿名クラスは
静的メンバーを定義できません
。③匿名クラスは、private、public、protected、static、final、abstracなどで変更できません。④
作成できるのは1つだけです。匿名のクラスインスタンス。
匿名の内部クラスはどのような状況で使用されますか?
実際、匿名内部クラスは他のクラスと同じ内部構造を持っていますが、匿名内部クラスによって作成されたオブジェクトは特定の変数によって参照されないため、匿名内部クラスは「1回限り」です。作成されたクラスオブジェクトが1つしかない場合は、このシナリオで匿名の内部クラスの使用を検討できます。