【本節目标】
通過閱讀本節内容,你将對繼承有更進一步的了解,并能夠靈活結合繼承進行結構化程式設計。
案例分析三(字元串統計)
編寫程式, 統計出字元串“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]) ;
}
}

圖一 執行結果一
以上的解決方案嚴格來講隻是一種順序式的思維模式解決的,假設說現在統計的是字母o或者n的個數,那麼還有可能進行各種其它統計的設計。
字元串統計操作:
圖二 統計設計
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面向對象程式設計文章檢視此處