サイズ: 2318
コメント:
|
サイズ: 3200
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 112: | 行 112: |
---- === 機能の継承 === 機能(メソッド)も性質と同様に継承されます。 スーパークラスで定義されたメソッドはサブクラスでも利用できます。 {{{#!java public class クラス1 { void method1() ... } }}} クラス1でメソッドmethod1()が定義されている時には、 そのサブクラスでmethod1()が定義されていなくても利用できるということです。 呼び出しが行われたら、スーパークラスで定義されているメソッドが使われます。 スーパークラスで定義されているメソッドと同じ名前のメソッドを サブクラスで再定義することもできます。 この場合サブクラスで定義したメソッドが優先されます。 これをメソッドのオーバーライドといいます。 |
メソッド
クラスのもつ機能を定義したものをメソッドといいます。
メソッドはオブジェクトに対する(オブジェクトを利用した)処理を記述したものとも言えます。
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の変数が使われます。
メッソドadd1はrankの値を1増やします。
この例では、aの値は「ハートの13」になります。
値を返すメソッドを記述することもできます。
引数をもつメソッドの例です。
機能の継承
機能(メソッド)も性質と同様に継承されます。
スーパークラスで定義されたメソッドはサブクラスでも利用できます。
クラス1でメソッドmethod1()が定義されている時には、 そのサブクラスでmethod1()が定義されていなくても利用できるということです。
呼び出しが行われたら、スーパークラスで定義されているメソッドが使われます。
スーパークラスで定義されているメソッドと同じ名前のメソッドを サブクラスで再定義することもできます。 この場合サブクラスで定義したメソッドが優先されます。
これをメソッドのオーバーライドといいます。