前回のまとめ等
- 変数・演算子・制御文はCとだいたい同じだが、Cにはなかった型としてbooleanとStringがある。比較演算子等がbooleanを返すことに注意。
- パッケージ(教科書P.164〜)
- クラスをひとまとめにしたもの
- パッケージが違えば名前のクラスでも同時に存在できる
- パッケージに所属した状態とは?: 1) パッケージを表すディレクトリ(フォルダの中にソースコードが入っている)、2) ソースコードにパッケージ宣言が書かれている
- クラスとは(前回までの説明。クラスの説明の全てではないことに注意すること)
- データと処理をまとめたもの(教科書P.68)
- 既存の型を組み合わせて、「新しい型」を作る仕組み
- 構造体に関数がついたもの(C言語がきちんとわかっている人向けの説明)
- 前回作ったクラスについて
- 既存の型(int型)を組み合わせて、新しい型を作った。
- クラスの中で定義される変数のことを「フィールド」という(教科書P.72)。
- クラスの定義とその中のフィールドの定義には「public」をつける(今のところ、本講義では)。
123456
package パッケージ名; public class クラス名 { public フィールドの型 フィールド名1; public フィールドの型 フィールド名2;}
- クラスは「設計図」といえる。実際に使うには、「実体」を作る必要がある。実体のことを「インスタンス」という(教科書では「オブジェクト」と呼んでいる)。
- インスタンス化(インスタンスを作ること)にはnew演算子を使う(教科書P.70,71)。
1
クラス名 インスタンス名 = new クラス名();
- インスタンスのフィールドにアクセスするには「.」を使う(例えば、以下はフィールドに代入する場合)。
1
インスタンス名.フィールド名 = 代入したい値;
復習
- パッケージ「d00000.lecture05」を作る。
- d00000.lecture05に、前回と同様にPersonクラスを作る。
- さらに次のフィールドを追加する。
- 名前を表すnameフィールド
- 年齢を表すageフィールド
- 運転免許証の有無を表すhasDriverLicenseフィールド
クラスにメソッドを追加する
- 教科書P.74
- メソッドとは?Cにおける関数と大体同じ。
- メソッドは、クラスの中に定義される。
- Cとの違い: メソッドは、同じクラスのフィールドを使うことができる。
- メソッドの定義には「public」をつける(今のところ、本講義では)
- フィールドとメソッドのことを「メンバー」という。
- trivia: 教科書に「return (x);とも書きます。」とあるが、今時、カッコはつけない(つけるべきではない)ので、当該箇所は無視すること。詳しくは「c言語 return カッコ」等で検索。
- クラスをひとまとめにしたもの
- パッケージが違えば名前のクラスでも同時に存在できる
- パッケージに所属した状態とは?: 1) パッケージを表すディレクトリ(フォルダの中にソースコードが入っている)、2) ソースコードにパッケージ宣言が書かれている
- データと処理をまとめたもの(教科書P.68)
- 既存の型を組み合わせて、「新しい型」を作る仕組み
- 構造体に関数がついたもの(C言語がきちんとわかっている人向けの説明)
- 既存の型(int型)を組み合わせて、新しい型を作った。
- クラスの中で定義される変数のことを「フィールド」という(教科書P.72)。
- クラスの定義とその中のフィールドの定義には「public」をつける(今のところ、本講義では)。
123456package パッケージ名;public class クラス名 {public フィールドの型 フィールド名1;public フィールドの型 フィールド名2;} - クラスは「設計図」といえる。実際に使うには、「実体」を作る必要がある。実体のことを「インスタンス」という(教科書では「オブジェクト」と呼んでいる)。
- インスタンス化(インスタンスを作ること)にはnew演算子を使う(教科書P.70,71)。
1クラス名 インスタンス名 = new クラス名(); - インスタンスのフィールドにアクセスするには「.」を使う(例えば、以下はフィールドに代入する場合)。
1インスタンス名.フィールド名 = 代入したい値;
- 名前を表すnameフィールド
- 年齢を表すageフィールド
- 運転免許証の有無を表すhasDriverLicenseフィールド
フィールド2つ、メソッド1つ(引数が2つの場合)のクラスの例:
1 2 3 4 5 6 7 8 9 10 |
package パッケージ名; public class クラス名 { public フィールドの型 フィールド名1; public フィールドの型 フィールド名2; public 戻り値の型 メソッド名1(引数1の型 引数1の名前, 引数2の型 引数2の名前) { (メソッドの本体) return 戻り値; } } |
PersonにBMIを計算するメソッドを付け加えてみよう。
ポイント:
- BMIの計算には2つの値(身長と体重)が必要。Cの場合は関数の引数としたが、Personクラスにメソッドを記述する場合、フィールドの値を使えば良い(使うべき)なので、引数無しになる。