【Java】カプセル化:ゲッター・セッターの使い方

■カプセル化

カプセル化とは、フィールド(メンバ変数)とメソッドをまとめたクラスを定義することである。
このとき、フィールド(メンバ変数)は、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円
タイトルとURLをコピーしました