みなさん、こんにちは。この記事では、主にオブジェクトクラス、匿名内部クラス、Javaファウンデーションの構築メソッドの継承知識を紹介します。一緒に学びましょう! |
1つ、オブジェクトクラス
Objectクラスはすべてのクラスの親クラスであり、すべてのクラスはObjectクラスを継承します。
オブジェクトクラスメソッド:
toString()メソッド:このメソッドはより多く使用され、オブジェクトの文字列を返します。通常はサブクラスがカバーします
。getClass()メソッド:実行中のオブジェクトのタイプを返します。equals()メソッド:オブジェクト
のコンテンツが等しいかどうかを判断します。 ;
finalize()メソッド:このメソッドは主にリソースを解放するために使用されます。このメソッドはめったに使用されず、いつ呼び出すかを決定することは不可能です。
hashCode()メソッド:このオブジェクトのハッシュ値を返します;
notify()メソッド:このメソッドはこのオブジェクトを待機している特定のスレッドをウェイクアップします;
notifyAll()メソッド:このメソッドはこのオブジェクトを待機しているすべてのスレッドをウェイクアップします;
wait()メソッド:現在のスレッドは、このオブジェクトのロック、つまりこのオブジェクトのロックを待機しています。wait()メソッドは、ロックを取得するか、中断されるまで待機することを意味します。wait(long timeout)はタイムアウト間隔を設定し、指定された時間内にロックが取得されなかった場合に戻ります。
clone()メソッド:オブジェクトの浅いコピーを実現するための保護メソッド。このメソッドは、Cloneableインターフェースが実装されている場合にのみ呼び出すことができます。そうでない場合、例外がスローされます。
オブジェクトクラスの例
例えば:
//フルーツ クラスを定義しますFruit { double weight = 10; // weight属性をweightとして定義します// info()メソッドを定義し ますvoid info(){ System.out.println( "私はフルーツです、重みは次のとおりです: "+ weight +" g! "); } } public class p32 { public static void main(String [] args){ // TODO自動生成されたメソッドスタブ Fruitf = new Fruit(); // Fruitクラスオブジェクト システムを作成します。 out.println(f.toString()); // toStringメソッドを呼び出す } }
操作の結果は次のとおりです。
上記のコードから、FruitオブジェクトのtoString()メソッドが出力ステートメントで呼び出されます。このFruitクラスは、Objectクラスを継承し、このオブジェクトの情報を出力するためにObjectのtoString()メソッドを定義します。
ObjectクラスのtoString()メソッドを書き換える例
//フルーツ クラスを定義しますFruit { double weight = 10; // weight属性をweightとして定義します// ObjectクラスのtoString()メソッドを書き直します public String toString(){ return "私はフルーツであり、重みは: "+ weight +" g! "; } } public class p32 { public static void main(String [] args){ // TODO自動生成されたメソッドスタブ Fruitf = new Fruit(); // Fruitクラスオブジェクト システムを作成します。 out.println(f.toString()); // toStringメソッドを呼び出す } }
操作の結果は次のとおりです。
上記のコードから、定義されたフルーツクラスのObjectクラスのtoString()メソッドを上書きします。FruitクラスはObjectクラスを継承し、オブジェクトの情報を出力します。
2つの匿名の内部クラス
匿名の内部クラスとは何ですか
匿名の内部クラスは、単にこのクラスの名前がわからないことを意味します。匿名の内部クラスを作成するには、一度だけ呼び出す必要があります。
匿名内部クラスの構文
新しいクラス名(パラメーター)|親インターフェース(){ //匿名内部クラスのクラス本体部分 }
匿名の内部クラスの例を実装する方法
//フルーツ インターフェイスを定義Fruit { double weight = 30; //重み属性を重みとして定義 voidinfo(); //抽象メソッドを定義 } public class p33 { public static void main(String [] args){ // TODO Auto-生成されたメソッドスタブ //匿名の内部クラスをfruitInfo()メソッドのパラメーターとして定義します fruitInfo(new Fruit(){ // info()メソッドを実装し ますpublic void info(){ System.out.println( "I am aフルーツ、重みは "+ weight +" g! "); } }); } //静的メソッドを定義するfruitInfo() public static void FruitInfo(Fruit f){ f.info(); // info()を呼び出すオブジェクトfのメソッド } }
操作の結果は次のとおりです。
上記のコードから、最初のステップは、フルーツクラスインターフェイスを定義し、weight属性とinfo()抽象メソッドを定義することです。FruitInfoメソッドを呼び出す場合、新しいFruit(){}にメソッドのパラメーターを書き込むことは、オブジェクトをインスタンス化して、オブジェクトをfruitInfoメソッドに渡すことと同じです。中括弧の中には匿名のサブクラスがあります。
三、工法の継承
工法継承の特徴
①サブクラスは、親クラスを無条件に継承できるパラメータのない構築メソッドです。
②サブクラス自体に構築メソッドがない場合は、親クラスのパラメータレス構築メソッドを独自の構築メソッドとして継承します。サブクラスが独自の構築メソッドを定義している場合は、新しいオブジェクトを作成するときに、最初にパラメータレス構築メソッドを実行します。親クラスのConstructionメソッドから継承し、独自の構築メソッドを実行します。
③親クラスのパラメータを含む構築メソッドの場合、サブクラスは独自の構築メソッドで「super」キーワードを使用して呼び出します。callステートメントは、サブクラス構築メソッドの最初の実行可能ステートメントである必要があります。
工法の継承例
//親クラス クラスを定義しますFather { public Father(){ System.out.println( "parent class ..."); } public Father(String name){ System.out.println( "親クラス名は次のとおりです: "+ name); } } //親 クラスを継承するようにサブクラスを定義するSonextends Father { public Son(){ super(" Tom "); System.out.println(" subclass ... "); } } public class p39 { public static void main(String [] args){ // TODO自動生成されたメソッドスタブSonson = new Son(); // Sonのインスタンスを作成する } }
操作の結果は次のとおりです。
4、まとめ
この記事では、主にObjectクラス、anonymous内部クラス、構築方法の継承について紹介します。
Objectクラスはすべてのクラスの親クラスであり、すべてのクラスはObjectクラスを継承します。Objectクラスの例を通じて、Objectクラスのいくつかのメソッドを導入し、ObjectクラスのtoString()メソッドの例をオーバーライドして、使用法を理解しやすくしました。
匿名の内部クラスは、単にこのクラスの名前がわからないことを意味します。匿名の内部クラスを作成するには、一度だけ呼び出す必要があります。
工法の継承は、工法の継承を理解するための彼の例を通して、その特徴を紹介します。