pafuイーランスクール 学んでできる

メニューへ戻る

5章 クラスの作成

学習のポイント

Javaは、クラスを作成してプログラミングしていきます。クラスの構成要素「フィールド」「コンストラクタ」「メソッド」を理解し、実行クラスでのインスタンス化を理解しましょう。

1. クラスの基本形

public class クラス名 {//クラスブロックの開始
  //フィールドの宣言
  アクセス修飾子 データ型 変数名;
  //コンストラクタの宣言
  public クラス名(引数リスト){
    //コンストラクタの本体
  }
  //メソッドの宣言
  アクセス修飾子 戻り値型 メソッド名(引数リスト){
    //メソッドの本体
  }
}//クラスブロック終了

上記がクラスの基本形です。
クラスの中では、「フィールドの宣言」「コンストラクタの宣言」「メソッドの宣言」から構成されています。

Javaのプログラムは、{ }で囲まれる「ブロック」から構成されています。ブロックとは「複数の命令文をまとめる機能」があります。

2. アクセス修飾子
フィールドはクラスの最初に定義するのが一般的です。通常は以下のようにします。
アクセス修飾子 型名 フィールト名;
例として、public String name; です。
アクセス修飾子のアクセス範囲は以下の通りです。
public protected デフォルト(なし) private
定義したクラス
パッケージ ×
サブクラス × ×
すべて × × ×
○がアクセス可能で、×はアクセス出来ません。
3. カプセル化とは?
クラス作成の基本は「カプセル化」です。これは、「フィールドをクラス外部から見えないように「private」で指定し、フィールドの取得「ゲッター」とフィールドへの設定「セッター」というメソッドを定義する」というものです。
ゲッターとセッターを併せて「アクセサメソッド」といいます。
4. メソッドとは?
メソッドとは、クラスの中で定義されたサブルーチンのような一連の処理を行うものです。 実際の定義は以下のようにします。
アクセス修飾子 戻り値の型 メソッド名(仮引数リスト) 例えば以下のようにします。

public void pafuPrint(String str){
  //メソッドの本体
}

というように記述します。仮引数は複数指定が出来て、その場合は「,」で区切ります。仮引数がない場合は「()のみ」です。また、「void」とは、戻り値がない場合に指定します。
5. コンストラクタとは?
「new」演算子を使用してクラスのインスタンスを作成できます。この時、インスタンスを生成するときに呼び出される特殊なメソッドを「コンストラクタ」と言います。コンストラクタには以下の条件があります。
■ 名前はクラス名と同じにする。
■ 戻り値の指定はしない。
■ サブクラスへは継承されない。
以下のようにます。

public class Pafu {
 public int a;
 public int b;
 //コンストラクターの定義
 public Pafu8(int a,int b) {
  this.a = a;
  this.b = b;
 }

}

実際の利用では、以下のようにします。

public class PafuMain {
 public static void main (String[] args) {
   Pafu p = new Pafu(10,15);
 }
}

これで、フィールド変数「a」に10、「b」に15がセットされて、初期化されます。

※ここで「this」とは「このクラスのインスタンスそのものを指します」

6. クラスの仕様
では、実際にクラスを作成してみましょう。今回は、「商品クラス」「CSyohin」を作成します。このクラスは以下の通りとします。
■ フィールド
・商品名
・価格
■ コンストラクタ
・上記の2つのフィールドの初期化
■ メソッド
・商品名フィールドのゲッター
・価格フィールドのゲッター
・買い物メソッド
  ※引数に氏名・数量を指定
  ※処理として、氏名さんが商品(XXX円)を10個買ってXXX円です。
  と画面表示します。
7.クラスの作成
以下のようになります。

8. クラスのインスタンス化
次に、クラス「CSyohin」をインスタンス化します。これは、メインクラス「CMain」で行います。メインクラスは実行クラスで「mainメソッド」を持ちます。Javaのプログラムでは、このmainメソッドから実行されるようになっています。

実行すると画面には、以下のように表示されます。

田中さんはバナナ(100円)を5個、買って500円でした。
佐藤さんはチョコ(120円)を3個、買って360円でした。
川瀬さんはアイス(200円)を2個、買って400円でした。

9. まとめ
クラスの簡単な作成例をご紹介いたしました。これ以外にもカプセル化には

■ クラス変数(static変数)
■ オーバーロード(同じ名前のメソッドの複数定義)
■ 参照型のフィールドやコンストラクタの引数
■ クラス型の配列・ArrayList・HashMap…など

オブジェクト指向の三大要素は「カプセル化」「継承」「ポリモーフィズム」です。カプセル化の基本は非常に重要です。しっかり理解しましょう。

基本情報技術者試験の午後Javaでは、クラスの定義で、mainメソッドのある実行クラスに「public」が指定されて、それ以外のクラスにはアクセス修飾子は「デフォルト(なし)」と指定されて出題されています。

カプセル化をもっと学びたいという方は「pafuイーランスクール」「Javaオブジェクト指向講座」よりご確認ください。また、書籍のみご希望の方は「こちら」よりご確認ください。

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる