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は参照するインスタンスを変更できる

次回は

練習問題の解説。
クラスのつづき。






このブログの人気の投稿

1月23日(金)1、2コマ目

1月22日(木)2コマ目

2月17日(火)3コマ目