天天看點

教你從實戰中領悟繼承(中) | 帶你學《Java面向對象程式設計》之四十三

上一篇:教你從實戰中領悟繼承(上) | 帶你學《Java面向對象程式設計》之四十二

【本節目标】

通過閱讀本節内容,你将對繼承有更進一步的了解,并能夠靈活結合繼承進行結構化程式設計。

案例分析三(字元串統計)

編寫程式, 統計出字元串“want you to know one thing”中字母n和字母o的出現次數。

對于本程式而言,最簡單的操作方式就是直接在主方法裡面定義一個操作,或者直接定義一個新的類進行處理。

範例:定義一個單獨的處理類

class StringUtil {
    //傳回的第一個内容為字母n的個數,第二個内容為字母o的個數
    public static int [] count(String str) {
        int countData [] = new int [2] ;
        char [] data = str.toCharArray() ;    //将字元串變為字元數組
        for (int x = 0 ; x < data.length ; x ++) {
           if (data[x] == ‘n’ || data[x] == ‘N’) {
              countData[0] ++ ;
           }
           if (data[x] == ‘o’ || data[x] == ‘O’) {
              countData[1] ++ ;
           }
         }
         return countData ;
    }
}
public class JavaDemo{
    public static void main(String args[]) {
        String str = “want you to know one thing” ;
        int result [] = StringUtil.count(str) ;
        System.ou.println(“字母n的個數:” + result[0]) ;
        System.ou.println(“字母o的個數:” + result[1]) ;
    }         
}           
教你從實戰中領悟繼承(中) | 帶你學《Java面向對象程式設計》之四十三

圖一 執行結果一

以上的解決方案嚴格來講隻是一種順序式的思維模式解決的,假設說現在統計的是字母o或者n的個數,那麼還有可能進行各種其它統計的設計。

字元串統計操作:

教你從實戰中領悟繼承(中) | 帶你學《Java面向對象程式設計》之四十三

圖二 統計設計

class StringUtil {
    private String content ;  //需要儲存字元串
    public StringUtil(String content) {
        this. content = content;
    }
    public String getContent() {
        return this.content ;
    }
    public String getInfo () {        //預設的資訊傳回
        return this.getContent(() ;
    }
}
class StringContent extends StringUtil {
    private int nCount ;
    private int oCount ;
    public StringContent (String content) {
        super(content) ;
        this.countChar() ;     //構造方法統計
    }
    public void countChar() {
        char [] data = super.getCount().toCharArray() ;    //将字元串變為字元數組
        for (int x = 0 ; x < data.length ; x ++) {
           if (data[x] == ‘n’ || data[x] == ‘N’) {
              this.nCount ++ ;
           }
           if (data[x] == ‘o’ || data[x] == ‘O’) {
              this.oCount ++ ;
           }
        }
    }
    public int getNCount() {
        return this.nCount ;
    }
    public int getOCount() {
        return this.oCount ;
    }
    public String getInfo() {
        return “字母n的個數:” + this.nCount + “字母o的個數:” + this.oCount ;
    }
}
public class JavaDemo{
    public static void main(String args[]) {
        StringCount sc = new StringCount(“want you to know one thing”) ; 
        System.out.println(sc.getInfo()) ;      
    }         
}           
教你從實戰中領悟繼承(中) | 帶你學《Java面向對象程式設計》之四十三

圖二 執行結果二

任何方案都可以,如果采用第一種方案比較直覺,但是第二種方案更加适合于結構化的設計。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:教你從實戰中領悟繼承(下) | 帶你學《Java面向對象程式設計》之四十四 更多Java面向對象程式設計文章檢視此處