サイズ: 3827
コメント:
|
← 2010-11-08 01:56:04時点のリビジョン21 ⇥
サイズ: 3515
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 62: | 行 62: |
---- | |
行 104: | 行 104: |
* 次の例に示すように、本体が空のメソッドでもよい。 | |
行 106: | 行 107: |
後日そのクラスのサブクラスを作成することがあれば、 | 引数のないコンストラクタを使おうとするとエラーになります。 後日そのクラスのサブクラスを作成するなどで、 |
行 108: | 行 110: |
---- === 例 === 今回記述したDrinkクラスの例です。 * 引数のないコンストラクタの本体は空にしています。 * mainメソッドの内容は省略しました。 {{{#!java public class Drink extends Item { int yoryo; |
|
行 118: | 行 111: |
Drink() { } Drink(String namae, int kakaku, int yoryo) { this.namae = namae; this.kakaku = kakaku; this.yoryo = yoryo; } |
==== 例 ==== {{{#!java public class Item { ... |
行 129: | 行 117: |
int getYoryo() { return this.yoryo; } void setYoryo(int ryo) { this.yoryo = ryo; } void disp() { System.out.printf( "%s \\%d %d ml\n", namae, kakaku, yoryo ); } public static void main(String[] args) { ... } } }}} |
Item() { } Item(String name, int price) { this.name = name; this.price = price; } ... } }}} |
コンストラクタ
属性(の集まり)がインスタンスの型紙として使われました。
属性の宣言は変数の宣言と同じ書き方をしますが、ここに変数が取られるわけではありません。
この例では new Item() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.name、a.priceによって、そのインスタンスの属性(変数)にアクセスすることができました。
インスタンスを生成するときに使われる Item() のことをコンストラクタと言います。
- コンストラクタはクラスと同じ名前です。
- コンストラクタを呼び出すときは前に new をつけます。
- コンストラクタが呼び出されるとインスタンスが作成されます。
コンストラクタの定義
コンストラクタは定義しなくてもかまいません。
インスタンス作成時になんらかの処理をしたいときには、 コンストラクタを定義して記述します。
- コンストラクタには戻り値を指定できません。
この例では new Item() が呼び出されるとインスタンスが作成され、 「Itemインスタンスを作成しました」と表示されます。
オーバーロード
引数をとるコンストラクタを定義することもできます。
引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。
インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。
値はコンストラクタの引数として与えています。
コンストラクタを記述するときの注意
引数の個数が異なれば、いくつでもコンストラクタを記述することができました。
- 引数のあるコンストラクタを記述するときは、引数のないコンストラクタも記述するようにしましょう。
- 次の例に示すように、本体が空のメソッドでもよい。
記述していなくても使うことがなければ問題ありませんが、 引数のないコンストラクタを使おうとするとエラーになります。 後日そのクラスのサブクラスを作成するなどで、 気づかないうちに引数のないコンストラクタが使われるかもしれません。