26.1.5.3 メソッドの導入

class RectHollow{
 public static void main(String argv[ ]){
    int i,j;
    stars20();
    for(j=2; j<=9; j=j+1){
        System.out.print("*");      //行頭の星印
        for(i=2; i<=19; i=i+1)
            System.out.print(" ");  
        System.out.println("*");    //行末の星印
    }
    stars20();
 }
 static void stars20(){
   int i;
   for(i=1; i<=20; i=i+1)
      System.out.print("*");
   System.out.println();
 }
}

fileRectHollow.java (iso-2022-jp)

これで,2ヶ所のstars20();によって同じ「横線」が表示されるようになりました.

メソッドを覚えると,上のプログラムの中の「空白18個」も何とかしたくなるのは人情というものでしょう.しかしこの動作はプログラム中には1回しか現れませんから,メソッドとして定義しても(文字を書く量を減らすという意味では)利益がありません.しかし,メソッドについては, パラメータという仕掛けを用いて機能を汎用化することができるようになっています.現在のプログラムでは,

"*" を20個

" " を18個

"*" を1個

という表示ができればいいのですから,「何を」と「何個」という指定ができれば,ただ1種類のメソッドで済むことになるのです.