呉ユーキション - 自然生まれのJAVAオブジェクト指向のハイレベルのプログラミングの研究ノート:ペット店のケーススタディ

インタフェースペット{     // インタフェースペットの定義
    パブリック文字列の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())。
            } 
        } 
    } 
}。

 

おすすめ

転載: www.cnblogs.com/tszr/p/12153257.html