クラスの基礎

クラスとは

  • データと処理をまとめたもの(教科書P.58)
  • 構造体に関数がついたもの(C言語がきちんとわかっている人向けの説明)
  • 型の定義
  • etc..

クラスはメンバーによって構成される。メンバーにはフィールド(データ、変数)とメソッド(C言語における関数)の2種類がある。

身体データ(身長と体重)からBMIを計算するプログラムを作ってみよう(ソースコード全体

クラスを使わない例

クラスを使う例

まずはクラスを作る(定義する)。まずは身長と体重を格納するフィールドだけのクラスを考えよう。

  • クラス名はBodyとする。クラス名は英語の大文字から始めることに注意。
  • weightとheightというフィールドを持つ。

クラスは「型の設計図」なので、設計図から実体を作る必要がある。その実体のことを「インスタンス」という(教科書では「オブジェクト」という言葉を使っている「オブジェクト」は文脈によって意味が違ったりするので本講義では「インスタンス」という言葉を使う)。クラスからインスタンスを作ることを「インスタンス化」という。

mainメソッドの中でBodyクラスをインスタンス化しよう。インスタンス化はnew演算子で行う。

インスタンスのフィールドは「インスタンス名.フィールド名」で利用することができる。それぞれのフィールドに値を代入してみよう。

これでタローのデータをフィールドに格納することができた。クラスを使わない例と同様にBMIを計算できる。ジローについても同様。

次にBMIを計算するメソッドをBodyクラスに加えてみよう(5-9行目)。メソッド名はgetBmiとする。メソッドからはフィールドにアクセスすることができる(C言語における「グローバル変数」のように見えるが、クラス内でならアクセスできるということと、インスタンスごとにフィールドができるという点で大きく違う)。

メソッドを使ってBMIを取得するには、例えば、次のよう呼び出すことができる。フィールドと同様に「インスタンス名.メソッド名(引数)」で呼び出せる。

最終的に表示するコードは次のようになる。

ポイント

  • クラスは設計図で、設計図から実体(インスタンス)を作る必要がある。
  • クラスはメンバーからなる。メンバーにはフィールド(データ、変数)とメソッド(処理、C言語における関数)がある。
  • インスタンス化はnew演算子で行う。
  • インスタンスのメンバーを使うにはドット演算子を使う。

Lecture03_main.png