10月23日(木)2コマ目

今日、やったこと

クラス

  • インスタンス生成
  • メソッド

今日のホワイトボード

インスタンス生成

インスタンス生成とは、そのクラスに必要なエリアをメモリ上に確保すること。

確保したエリア内にフィールドやメソッドがあるイメージ。

※本当はメソッドは別のところにあるけど

図 Timeクラスのインスタンス生成

上図のプログラムはそれぞれ以下を行っている。


Time tm;

Timeクラス型の変数tmを宣言。

メモリ上の空きエリアにtmでアクセスできるエリアが確保される。

なお、このエリアはTimeクラスに必要なサイズ(hourやminuteフィールド)ではない。


tm = new Time();

new Time()でTimeクラスのインスタンスが生成される

インスタンス生成で、そのクラスに必要なサイズのエリアがメモリ上に確保される。 

tmに代入されるのは、生成したTimeクラスのインスタンスへの参照情報。

変数tmはポインタ変数ということになる。


メソッド

クラスにはメソッドを作ることができる。

図 メソッド

Show()メソッドでアクセスしているhour、minuteは、同じインスタンス内のhourフィールド、minuteフィールド


インスタンスを複数生成すると

下図の変数tm1が参照するTimeクラスのインスタンスと、変数tm2が参照するTimeクラスのインスタンスは別々。

それぞれのインスタンスのhour、minuteフィールドに代入されている値が異なるため、Show()メソッド実行結果も異なる。

図 インスタンスを複数生成すると

アクセス修飾子

いろいろあるが、同一クラス内からのみアクセス可のprivateと、どこからでもアクセス可のpublicだけ知っておいてください。
図 アクセス修飾子

次回は

クラスのつづき。
  • プロパティ
  • コンストラクタ


このブログの人気の投稿

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

1月22日(木)2コマ目

2月17日(火)3コマ目