トップページ→プロ3ゼミ
→Java→Java入門講座→二学期→単位6
→2時間目
2時間目 シンプルなクラスで説明
6−2−1.クラスとは
クラスとは、単位6 1時間目 オブジェクト指向並びにJavaとJavaクラスの最後に示し
たパソコンやケータイなどの事で、存在するオブジェクトの属性(フィールド)と手続き(メソッド)をまとめ
て抽象化したものです。
抽象化とは、パソコンの場合で言うと自分のパソコンが他のパソコンなどと比較して共通するフィールドとメソ
ッドを抜き出す事を表します。
6−2−2.実際にシンプルなクラスを作成
次の社員に関する説明からクラスを作ってみます(この時間のタイトル通りシンプルなクラスで)。
社員は、氏名、所属名、住所、電話番号、生年月日と入社日の要素を持ちます。
社員の説明に関する文章は、プログラムや設計を行った事が無い方は違和感を覚えるかもしれません。
例えば、給与システム(社員に給料を支払う為に税などを考えて、算出する為のソフトウェア)を作成する時に
、必要な社員を定義する為の文章だと思ってください。
もし、この文章が無ければ曖昧なままになりますので、文章として定義します。
// 社員クラス
class Employee {
String name; // 氏名
String affiliationName; // 所属名
String address; // 住所
String tel; // 電話番号
String birth; // 生年月日
String joinCompanyDay; // 入社日
}
Javaでは、クラスとして扱い社員クラスを作成します。
クラスを定義する場合は、「class」キーワードを使います。
「class クラス名」のように、クラス名に作成するクラス名を入力すれば、Javaでクラスが作成されます。
クラスを表す場合は「{」で始まり「}」で終わります。
その中に、フィールドを記述する事により、例では社員の要素が定義できました。
今までは、それぞれのフィールドの変数を宣言しなければ実現できませんでしたが、クラスを導入する事により、
社員に関連する変数である事が分かりやすくなります。
ここでは説明を簡単にする為に、メソッドを省略してクラスを作成しました。
Javaでは、クラスを作成するのに、注意しなくてはならないのがクラス名の付け方です。
クラス名は、単語の先頭をすべて大文字にすることが、Java主義として推奨されています。
単語の先頭をすべて大文字にすることにより変数名(フィールド名)とメソッド名との違いが明確になります。
ちなみに、変数名(フィールド名)とメソッド名は最初の単語だけ小文字で始まります(Java主義)。
プログラムで違いが明確になるでけではなく、クラス名は名詞でメソッド名は動詞を意識して書くことにより納
得していただけると思います。
クラス名を名詞でメソッド名を動詞で作成することもJava主義です。
6−2−3.クラスの使用方法
●クラスの宣言
クラスの宣言は、以下のように行います。
クラス名 変数名;
こうする事でクラスが宣言され変数が定義されます。
●クラスのインスタンス化
変数を使うには、クラスを実体化しなければならず、これをJavaではインスタンス化と呼びます。
インスタンス化を知る前に、型を再度学ぶ必要があります。
そもそも型とは、int型やdouble型などの事で変数の範囲を指定する事だと
3時間目 型と式・演算子で説明しました。
クラスも型であり、クラスを型で指定し宣言した場合は作成したクラスの要素がすべて使えます。
忘れている方に再度説明すると、文字列を扱うString型がありましたね。
String型を説明するときに参照型と説明しましたが、クラスは全て参照型です。
クラスを宣言しただけではなく、クラスを使用するには、次のようにインスタンス化をする必要があります。
次に、インスタンス化の構文を示します。
クラス名 変数名 = new クラス名();
既に宣言されている場合は、
変数名 = new クラス名();
とします。
キーワードとして、「new」を使います。
クラスは抽象化されているだけであり、中身がありません。
この中身を作成する為に、インスタンス化つまり実体を作成するのです。
具体的に話せば、クラスも配列と同じように宣言でメモリ上の位置(棚の最初の部屋番号)を知るだけでメモ
リ上に実際の長さ(部屋の数)は確保されていません。
この為、配列の要素を作成する際にも「new」キーワードが使われていた訳です。
●クラスのフィールドへのアクセス方法
クラスのフィールドへのアクセスは、「.」を使います(これをドット演算子と呼ぶ)。
例えば、クラス名がemployeeで氏名にアクセスするなら「employee.name」とし変数名.フィールド名のように使
います。
6−2−4.サンプルプログラム
| Sample6_2_1.java |
// 社員クラス
class Employee {
String name; // 氏名
String affiliationName; // 所属名
String address; // 住所
String tel; // 電話番号
String birth; // 生年月日
String joinCompanyDay; // 入社日
}
public class Sample6_2_1 {
public static void main(String[] args) {
Employee employee = new Employee(); // クラスの宣言とインスタンス化
employee.name = "サミー"; // 氏名の設定
employee.birth = "1957年01月29日"; // 生年月日の設定
// 社員情報を出力する
System.out.println("氏名は" + employee.name + "です");
System.out.println("生年月日は" + employee.birth + "です");
}
}
|
氏名はサミーです
生年月日は1957年01月29日です
|
6−2−5.クラスの構文のまとめ
●クラスの作成(シンプル版)
class クラス名 {
型 フィールド名;
以下に続く…
}
クラス名の単語はすべて先頭が大文字になる事に注意(Java主義)。
●クラスの宣言や宣言と同時にインスタンス化
クラス名 変数名;
変数名 = new クラス名();
や、
クラス名 変数名 = new クラス名();
●クラスのフィールドへアクセス
変数名.フィールド名;
1時間目 オブジェクト指向とJavaのクラスに戻る
3時間目 メソッドとはに進む
単位6 オブジェクト指向及びクラスの基本に戻る
トップページに戻る