■カプセル化
カプセル化とは、フィールド(メンバ変数)とメソッドをまとめたクラスを定義することである。
このとき、フィールド(メンバ変数)は、private(他のクラスから参照されない)を指定し、メソッドはpublic(他のクラスから参照可能)を指定する。
フィールド(メンバ変数)を呼び出すメソッド名をゲッターと呼び、「getフィールド名」で表記する。
フィールド(メンバ変数)を格納するメソッド名をセッターと呼び、「setフィールド名」で表記する。
※表記方法は分かりやすくするためだけであり、必ずしも「getフィールド名」や「setフィールド名」で記載しなければならないわけではない。
▼カプセル化(ゲッター・セッター)の書き方
class クラス名 {
private 型 変数名;
public get変数名(){
return get変数名();
}
private set変数名(型 変数名){
this.変数名 = 変数名;
}
}
■今回作成するプログラムの仕様
今回作成するプログラムは海鮮丼の名前と値段(文字列型と整数型)を表示するプログラムを作成する。
▼処理内容
・海鮮丼の名前と値段を格納・取得するクラス
▼メンバ変数
海鮮丼名の変数(文字列)
値段の変数(整数)
▼海鮮丼名を格納するメソッド(セッター)
海鮮丼名をセット
▼海鮮丼名を取得するメソッド(ゲッター)
海鮮丼名を返す
▼値段を格納するメソッド(セッター)
値段をセット
▼値段を取得するメソッド(ゲッター)
値段を返す
・メイン処理
海鮮丼の名前と値段を格納するクラスをインスタンスする。
いくら丼の名前と値段をセットする。
いくら丼の名前と値段を表示する。
鉄火丼の名前と値段をセットする。
鉄火丼の名前と値段を表示する。
■サンプルコード
// 海鮮丼の種類と値段を格納・取得するクラス
class Kaisendon {
private String name; // 商品名
private int price; // 値段
// 商品名を格納するメソッド
public void setName(String kaisen_name) {
this.name = kaisen_name;
}
// 商品名を取得するメソッド
public String getName() {
return this.name;
}
// 金額を格納するメソッド
public void setPrice(int kaisen_price) {
this.price = kaisen_price;
}
// 金額を取得するメソッド
public int getPrice() {
return this.price;
}
}
// メイン処理
public class Sample {
public static void main(String[] args) {
Kaisendon kaisen = new Kaisendon();
// いくら丼の名前と金額を格納
kaisen.setName("いくら丼");
kaisen.setPrice(850);
// いくら丼の名前と金額を取得
System.out.println("商品名:" + kaisen.getName());
System.out.println("金額:" + kaisen.getPrice() + "円");
// 鉄火丼の名前と金額を格納
kaisen.setName("鉄火丼");
kaisen.setPrice(900);
// 鉄火丼の名前と金額を取得
System.out.println("商品名:" + kaisen.getName());
System.out.println("金額:" + kaisen.getPrice() + "円");
}
}
■実行結果
商品名:いくら丼
金額:850円
商品名:鉄火丼
金額:900円
コメント