サイズ: 1612
コメント:
|
← 2010-11-08 01:56:04時点のリビジョン21 ⇥
サイズ: 3515
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
== クラス == . クラスはオブジェクトの状態と動作をサポートする。 . オブジェクトの状態は属性の集まりとして表される。 . オブジェクトの動作はメソッドで記述される。 クラスの記述(プログラム)は次のような形式になる。 5つの項目があるが、必要なものだけ記述すればよい。 {{{ 修飾子 class クラス名 { static変数の宣言 属性の宣言 コンストラクタの定義 普通のメソッドの定義 staticメソッドの定義 } }}} コンストラクタ、普通のメソッド、staticメソッドをあわせてメソッドと言います。 static変数、staticメソッドについては後日解説します。 ---- |
|
行 33: | 行 8: |
public class Card | public class Item |
行 35: | 行 10: |
String suit; int rank; |
String name; int price; |
行 40: | 行 15: |
Card a; a = new Card(); a.suit = "ハート"; a.rank = 12; |
Item a; a = new Item(); a.name = "おにぎり"; a.price = 120; |
行 48: | 行 23: |
この例では new Crad() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.suit、a.rankによって、そのインスタンスの属性にアクセスすることができました。 |
この例では new Item() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.name、a.priceによって、そのインスタンスの属性(変数)にアクセスすることができました。 |
行 51: | 行 26: |
インスタンスを生成するときに使われる Card() のことをコンストラクタと言います。 | インスタンスを生成するときに使われる Item() のことをコンストラクタと言います。 * コンストラクタはクラスと同じ名前です。 * コンストラクタを呼び出すときは前に new をつけます。 * コンストラクタが呼び出されるとインスタンスが作成されます。 ---- === コンストラクタの定義 === コンストラクタは定義しなくてもかまいません。 インスタンス作成時になんらかの処理をしたいときには、 コンストラクタを定義して記述します。 * コンストラクタには戻り値を指定できません。 {{{#!java public class Item { ... Item() { System.out.println("Itemインスタンスを作成しました"); } public static void main(String[] args) { Item a; a = new Item(); ... } } }}} この例では new Item() が呼び出されるとインスタンスが作成され、 「Itemインスタンスを作成しました」と表示されます。 ---- === オーバーロード === 引数をとるコンストラクタを定義することもできます。 引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。 {{{#!java public class Item { ... Item() { System.out.println("Itemインスタンスを作成しました"); } Item(String name, int price) { this.name = name; this.price = price; } public static void main(String[] args) { Item a; a = new Item("ガム", 150); } } }}} インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。 値はコンストラクタの引数として与えています。 ---- === コンストラクタを記述するときの注意 === 引数の個数が異なれば、いくつでもコンストラクタを記述することができました。 * 引数のあるコンストラクタを記述するときは、引数のないコンストラクタも記述するようにしましょう。 * 次の例に示すように、本体が空のメソッドでもよい。 記述していなくても使うことがなければ問題ありませんが、 引数のないコンストラクタを使おうとするとエラーになります。 後日そのクラスのサブクラスを作成するなどで、 気づかないうちに引数のないコンストラクタが使われるかもしれません。 ==== 例 ==== {{{#!java public class Item { ... Item() { } Item(String name, int price) { this.name = name; this.price = price; } ... } }}} |
コンストラクタ
属性(の集まり)がインスタンスの型紙として使われました。
属性の宣言は変数の宣言と同じ書き方をしますが、ここに変数が取られるわけではありません。
この例では new Item() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.name、a.priceによって、そのインスタンスの属性(変数)にアクセスすることができました。
インスタンスを生成するときに使われる Item() のことをコンストラクタと言います。
- コンストラクタはクラスと同じ名前です。
- コンストラクタを呼び出すときは前に new をつけます。
- コンストラクタが呼び出されるとインスタンスが作成されます。
コンストラクタの定義
コンストラクタは定義しなくてもかまいません。
インスタンス作成時になんらかの処理をしたいときには、 コンストラクタを定義して記述します。
- コンストラクタには戻り値を指定できません。
この例では new Item() が呼び出されるとインスタンスが作成され、 「Itemインスタンスを作成しました」と表示されます。
オーバーロード
引数をとるコンストラクタを定義することもできます。
引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。
インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。
値はコンストラクタの引数として与えています。
コンストラクタを記述するときの注意
引数の個数が異なれば、いくつでもコンストラクタを記述することができました。
- 引数のあるコンストラクタを記述するときは、引数のないコンストラクタも記述するようにしましょう。
- 次の例に示すように、本体が空のメソッドでもよい。
記述していなくても使うことがなければ問題ありませんが、 引数のないコンストラクタを使おうとするとエラーになります。 後日そのクラスのサブクラスを作成するなどで、 気づかないうちに引数のないコンストラクタが使われるかもしれません。