インタフェースペット{ // インタフェースペットの定義 パブリック文字列のgetName()を、 公共の文字列GETCOLOR(); 公共 int型getAge(); } クラスキャット実装ペット{ // 猫のペット、インターフェイス実装 プライベート文字列名を; // ペットの名前 プライベート文字列色; // ペットカラー プライベート int型の年齢; // ペットの年齢 公共猫(文字列名、文字列の色、int型年齢){ この.setName(名); この.setColor(色)。 この.setAge(年齢); } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } 公共 ボイドsetColorを(文字色){ この .color = 色。 } 公共 ボイド setAge(int型の年齢){ この .age = 年齢。 } パブリック文字列のgetName(){ 戻り 、この.nameのを、 } パブリック文字列GETCOLOR(){ 戻り これを .colorと、 } 公共の int型getAge(){ 返す この.ageを; } }; クラス犬実装ペット{ // 犬ペット、インターフェイス実装 プライベート文字列名を; // ペットの名前 プライベート文字列の色; // ペットカラー プライベート int型の年齢; // ペットの年齢 公共犬(文字列名、文字色、INT 年齢){ この.setName(名前); この.setColor(カラー); この.setAge(AGE); } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } 公共 ボイドsetColorを(文字色){ この .color = 色。 } 公共 ボイド setAge(int型の年齢){ この .age = 年齢。 } パブリック文字列のgetName(){ 戻り 、この.nameのを、 } パブリック文字列GETCOLOR(){ 戻り 、この.colorと、 } 公共 INT getAge(){ 戻り 、これを .ageと、 } }; クラスペットショップ{ // ペット格納 専用ペット[] Qucik事実ペット; // ペットのセーブセット プライベート int型のフット; 公共 Aペットショップ(INT LEN){ IF(LEN> 0 ){ この .pets = 新しい新しいペット[ LEN]; // オープン配列サイズ } 他{ この .pets = 新しい新しいペット[1]; // 開く少なくとも一つの空間 } } パブリック ブール追加(ペットPET){ //増加がペットであります IF(この .foot < 本.pets.length){ この .pets [ この .foot] = PET; //はペットを増やす この .foot ++ ; リターン trueに; } そう{ リターン はfalse ; } } 公共ペット[]検索(文字列キーワード){ //のに準拠してどのように多くのペットを決定すべきである ペットP-を[] = NULL ; INT COUNT = 0; //は、ペットの数が結果と一直線になり記録 用(int型 I = 0; I <、この .pets.lengthと、I ++ ){ IF(この .pets [I] =!NULL){ // この位置が示されているペット IF(この .pets [I] .getName()のindexOf(キーワード)= - 。! 1 || この .pets [I] .getColor()のindexOf(キーワード)= - 1。!。){ COUNT ++; // レコードの数が発見修正 } } } P = 新しい新しいペット[COUNT]; // オープン指定されたサイズのスペース int型 F = 0; //は、位置マーカーの要素を追加 するために(INT iは= 0; I < 本 .pets.length; I ++ ){ 場合(この .pets [I] =!NULL){ // 表示此位置有宠物 場合(この .pets [I] .getName()。 !のindexOf(キーワード)= - 1 || この .pets [I] .getColor()のindexOf(キーワード)= - 1。!){ P [F]は = この.petsを[I]。 F ++ ; } } } 戻りP。 } }。 パブリック クラス PetShopDemo { パブリック 静的 ボイドメイン(文字列引数[]){ ペットショップPS = 新しい新 Aペットショップ(5); // 5匹のペット (ps.add 新しい新しい猫( "白" "白" 2)); // 増加のペット、成功 ps.add(新新キャット( "黒猫"、 "黒"、3)); // 増加ペット、成功 ps.add(新新猫( "猫"、 "スーツ"、3)) ; // 増加ペット、成功 ps.add(新新ドッグ(「プルステップ、コロラド」、「黄」、3)); // 増加ペット、成功 ps.add(新しい新しい犬(「黄金」、「黄金の「2))。 // 増加ペット、成功 ps.add(新新犬( "黄狗"、 "黑色的"、2))。 // 增加宠物、失败 プリント(ps.search( "黑" )); } パブリック 静的 ボイドプリント(ペットP []){ ため(INT I = 0、I <p.length; I ++ ){ 場合(P [I] =!NULL ){ System.out.printlnは(P [I]。 getName() + "" + P [i]の.getColor() + "" + P [i]の.getAge())。 } } } }。