クラスとは
- データと処理をまとめたもの(教科書P.58)
- 構造体に関数がついたもの(C言語がきちんとわかっている人向けの説明)
- 型の定義
- etc..
クラスはメンバーによって構成される。メンバーにはフィールド(データ、変数)とメソッド(C言語における関数)の2種類がある。
身体データ(身長と体重)からBMIを計算するプログラムを作ってみよう(ソースコード全体)
クラスを使わない例
クラスを使う例
まずはクラスを作る(定義する)。まずは身長と体重を格納するフィールドだけのクラスを考えよう。
- クラス名はBodyとする。クラス名は英語の大文字から始めることに注意。
- weightとheightというフィールドを持つ。
クラスは「型の設計図」なので、設計図から実体を作る必要がある。その実体のことを「インスタンス」という(教科書では「オブジェクト」という言葉を使っている「オブジェクト」は文脈によって意味が違ったりするので本講義では「インスタンス」という言葉を使う)。クラスからインスタンスを作ることを「インスタンス化」という。
mainメソッドの中でBodyクラスをインスタンス化しよう。インスタンス化はnew演算子で行う。
インスタンスのフィールドは「インスタンス名.フィールド名」で利用することができる。それぞれのフィールドに値を代入してみよう。
これでタローのデータをフィールドに格納することができた。クラスを使わない例と同様にBMIを計算できる。ジローについても同様。
次にBMIを計算するメソッドをBodyクラスに加えてみよう(5-9行目)。メソッド名はgetBmiとする。メソッドからはフィールドにアクセスすることができる(C言語における「グローバル変数」のように見えるが、クラス内でならアクセスできるということと、インスタンスごとにフィールドができるという点で大きく違う)。
メソッドを使ってBMIを取得するには、例えば、次のよう呼び出すことができる。フィールドと同様に「インスタンス名.メソッド名(引数)」で呼び出せる。
最終的に表示するコードは次のようになる。
ポイント
- クラスは設計図で、設計図から実体(インスタンス)を作る必要がある。
- クラスはメンバーからなる。メンバーにはフィールド(データ、変数)とメソッド(処理、C言語における関数)がある。
- インスタンス化はnew演算子で行う。
- インスタンスのメンバーを使うにはドット演算子を使う。