10月24日(金)1、2コマ目
今日、やったこと
クラス
- プロパティ
- コンストラクタ
今日のホワイトボード
フィールドをprivateに
クラス外から変な値を代入できないように、フィールドはprivateにするのが一般的。
しかし、フィールドをprivateにすると、クラス外からアクセスできなくなるので、publicなアクセス用メソッドを用意する必要がある。
|
| 図 フィールドはprivateに、publicなアクセス用メソッドを用意 |
プロパティ
C#では、アクセス用メソッドの代わりに、変数感覚で使えるプロパティが使われる。
|
| 図 アクセス用メソッドの代わりにプロパティをつかう |
Time1.cs
Sample.cs
プロパティの自動生成機能
以下のような
- フィールドを用意して
- プロパティのget{ }内はフィールドの値を返すだけ
- プロパティのset{ }内はフィールドに値を代入するたけ
場合は、プロパティの自動生成機能で省略記法が使える。
この省略記法を使うと、
- フィールドを生成
- プロパティのget{ }内、set{ }内を生成
してくれる。
今後は、基本的にこの書き方で。
|
| 図 プロパティの自動生成機能を使って、フィールド、プロパティを生成 |
Time2.cs
Sample.cs
コンストラクタ
〇コンストラクタ生成
コンストラクタはメソッドに似ているが、
- コンストラクタ名はクラス名を同じにする必要がある
- 戻り値の型は指定できない
- そもそも戻り値を返すことはできない
と、メソッドと異なる。
〇コンストラクタ実行
メソッドと異なり、明示的に呼び出しができない。
インスタンス生成時に実行されるだけ。
|
| 図 コンストラクタ |
Time1.cs
Sample.cs
引数ありコンストラクタ
コンストラクタには、メソッドと同じように引数も使える。
引数に渡す値は、インスタンス生成時に( )内に指定する。
|
| 図 引数ありコンストラクタ |
Time2.cs
Sample.cs
コンストラクタを複数つくる
引数の数、型が異なれば、同じクラス内にコンストラクタを複数つくることができる。
コンストラクタが複数ある場合、インスタンス生成時の引数で実行されるコンストラクタが決まる。
|
| 図 コンストラクタを複数つくる |
Time3.cs
Sample.cs
Main()メソッドのTime3クラス型の変数tmが参照するインスタンスは
- 7行目では、7行目で生成したインスタンス
- 12行目では、12行目で生成したインスタンス
と、同じクラスなら参照するインスタンスを変更することもできる。
|
| 図 変数tmは参照するインスタンスを変更できる |
次回は
練習問題の解説。
クラスのつづき。






