3485
コメント:
|
2658
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
== クラス == . クラスはオブジェクトの'''状態'''と'''動作'''をサポートする。 . オブジェクトの状態は'''属性'''の集まりとして表される。 . オブジェクトの動作は'''メソッド'''で記述される。 クラスの記述(プログラム)は次のような形式になる。 5つの項目があるが、必要なものだけ記述すればよい。 {{{ 修飾子 class クラス名 { static変数の宣言 属性の宣言 コンストラクタの定義 普通のメソッドの定義 staticメソッドの定義 } }}} コンストラクタ、普通のメソッド、staticメソッドをあわせてメソッドと言います。 static変数、staticメソッドについては後日解説します。 ---- |
コンストラクタ
属性(の集まり)がインスタンスの型紙として使われました。
属性の宣言は変数の宣言と同じ書き方をしますが、ここに変数が取られるわけではありません。
この例では new Crad() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.suit、a.rankによって、そのインスタンスの属性にアクセスすることができました。
インスタンスを生成するときに使われる Card() のことをコンストラクタと言います。
- コンストラクタはクラスと同じ名前です。
- コンストラクタを呼び出すときは前に new をつけます。
- コンストラクタが呼び出されるとインスタンスが作成されます。
コンストラクタの定義
コンストラクタは定義しなくてもかまいません。
インスタンス作成時になんらかの処理をしたいときには、 コンストラクタを定義して記述します。
- コンストラクタには戻り値を指定できません。
この例では new Card() が呼び出されるとインスタンスが作成され、 「Cardインスタンスを作成しました」と表示されます。
オーバーロード
引数をとるコンストラクタを定義することもできます。
引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。
インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。
値はコンストラクタの引数として与えています。
コンストラクタ内で使われている suit, rank の2つの名前は、 今作成したインスタンスの中の変数のことです。