パッケージテスト; / ** * @author Shusheng 3つの方法で* @description取得したクラスファイルオブジェクト * @email [email protected] * @date 2018年12月23日午前23時14 * / パブリック クラスReflectDemo { / * *反射:ファイルは、このファイル、コンストラクタ、メンバーメソッドでメンバ変数を使用するには、クラスオブジェクトを介してです。 *これを使用するには、最初のクラスファイルオブジェクトを取得しなければならない、つまり、実際には、オブジェクトクラスクラスとなって。 *クラスのクラス: *メンバ変数フィールド、 *コンストラクタコンストラクタ *メンバー法法、 * *取得したクラスファイルオブジェクト方法: * A:はgetClassオブジェクトクラス()メソッド *のB:データ型静的プロパティクラス * C:クラス分類静的メソッド *パブリック静的クラスにforName(文字列クラス名) * を使用し、最後に*一般的に、我々 ? * A:自分のプレーの一つ、第二より便利に選択してください *のB:第三開発を 3分の1が文字列ではなく、特定のクラス名ですので、なぜ*?。我々は、設定ファイルにこの文字列の設定を置くことができるように。 * / パブリック 静的 ボイドメイン(文字列[]引数)スローにClassNotFoundException { // モード1。 人P = 新しい新規人物(); クラスC = p.getClass(); 人物P2 = 新しい新規人物(); クラスC2 = p2.getClass (); System.out.printlnは(P == P2); // FALS するSystem.out.println(C == C2); // trueに 実施例2// クラスC3 =人。クラス。 // int.classを; // String.class; System.out.println(C == C3)。 // 方式3 // にClassNotFoundException クラスC4 = Class.forNameの( "day27.Person" ); System.out.println(C == 1 -C 4)。 } } パッケージテスト; / ** * @authorのshushengの *の@description * @email [email protected] * @date 2018年12月23日23時49 * / パブリック クラス人{ プライベート文字列の名前。 int型の年齢; パブリック文字列のアドレス。 パブリック人(){ } 民間人(文字列名){ この .nameの= 名前。 } 人(文字列名、int型の年齢){ この .nameの= 名前。 この .age = 年齢; } 公共人(文字列名、int型の年齢、文字列アドレス){ この .nameの= 名前。 この .age = 年齢; この .address = アドレス。 } 公衆 ボイドショー(){ System.out.printlnは( "表示" )。 } 公共 ボイド方法(文字列S){ のSystem.out.println( "方法" + S)。 } パブリック文字列のgetString(文字列sは、int型I){ リターン S + "---" + I。 } プライベート ボイド関数(){ System.out.printlnは( "機能" )。 } @Override パブリック文字列のtoString(){ リターン "人物[NAME =" +名+ "年齢=" + "]" 。 + アドレス } }