welcome: please sign in
location: "メソッド"の差分
6と7のリビジョン間の差分
2008-11-12 06:01:18時点のリビジョン6
サイズ: 1656
編集者: masahiko
コメント:
2008-11-12 06:27:39時点のリビジョン7
サイズ: 1862
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 49: 行 49:
この場合は「インスタンスaに対してshow()を行う」と読めます。 この場合は「インスタンスaに対してshow()を行う」と読めます。<<BR>>
メソッドshow()の中ではprintlnが行われています。<<BR>>
ここで参照されているsuitとrankは、呼び出しで指定されたインスタンスaの変数が使われます。

メソッド

クラスのもつ機能を定義したものをメソッドといいます。

メソッドはオブジェクトに対する(オブジェクトを利用した)処理を記述したものとも言えます。

Cardクラスを例として説明します。

  •    1  public class Card
       2  {
       3         String suit;
       4         int rank;
       5         
       6         Card(String s, int r)
       7         {
       8                 suit = s;
       9                 rank = r;
      10         }
      11  
      12         void show()
      13         {
      14                 System.out.println( suit + " " + rank );
      15         }
      16  
      17         public static void main(String[] args)
      18         {
      19                 Card a, b;
      20                 
      21                 a = new Card("ハート", 12);
      22                 b = new Card("スペード", 3);
      23                 a.show();
      24                 b.show();
      25         }
      26  }
    

このクラスのメソッドとして show が定義されています。 使い方は

  •    1  a.show();
    

のように、インスタンスとメソッド名をピリオドでつなぎ括弧を書きます。

void(値を返さない)型のメソッドの場合

  • インスタンスxxxに対してメソッドyyy()を行う

のように解釈すればよい。

この場合は「インスタンスaに対してshow()を行う」と読めます。
メソッドshow()の中ではprintlnが行われています。
ここで参照されているsuitとrankは、呼び出しで指定されたインスタンスaの変数が使われます。

   1         
   2         void add1()
   3         {
   4                 rank = rank + 1;
   5         }
   6         
   7         boolean efuda()
   8         {
   9                 return (rank > 10);
  10         }
  11         
  12         int sa(Card c)
  13         {
  14                 return (rank - c.rank);
  15         }
  16         
  17         public static void main(String[] args)
  18         {
  19                 Card a, b;
  20                 
  21                 a = new Card("ハート", 12);
  22                 b = new Card("スペード", 3);
  23                 a.add1();
  24                 a.show();
  25                 if (a.efuda())
  26                         System.out.println( "絵札" );
  27                 b.show();
  28                 if (b.efuda())
  29                         System.out.println( "絵札" );
  30                 System.out.println( "差は" + a.sa(b) );
  31         }
  32 }

メソッド (最終更新日時 2011-10-27 05:50:29 更新者 masahiko)