【Java】アクセス修飾子・カプセル化


Javaについて、復習しながら更新していきます。
今回のテーマはアクセス修飾子とカプセル化!!

アクセス修飾子

Javaでは、ほかのクラスからのアクセスを許可するかどうかをアクセス修飾子を使用して制御しています。



[アクセス修飾子]
アクセス修飾子クラスコンストラクタメンバ変数メソッド制御説明
public全てのクラスから使用可能
protected×継承したサブクラスか、同一パッケージ内のクラスから使用可能
デフォルト同一パッケージ内のクラスから使用可能
private×同一クラスから使用可能
※×は修飾子として宣言することはできない


[例]
class Test
{
	//メンバ変数にprivate修飾子を指定
	private int menId;

	//コンストラクタにpublic修飾子を指定
	public Test(int i)
	{
		menId = i;
	}

	//メソッドにpublic修飾子を指定
	public int getId()
	{
		return menId;
	}

	//メソッドにprotected修飾子を指定
	protected void outputId()
	{
		System.out.println("protected");;
	}
}

public class Test_Exe
{
	public static void main(String[] args)
	{
		Test test = new Test(10);
		
		//private修飾子呼び出し不可能
		//int i = test.menId;
		
		//public修飾子呼び出し
		test.getId();
		
		//protected修飾子呼び出し
		test.outputId();
	}
}


カプセル化

変数とメソッドを一体化させて表現することをカプセル化という。一般的にメンバ変数には[private]を使用し、メソッドには[public]を指定し操作を行うことが推奨されている。メンバ変数に対しての直接の操作を抑止し、メソッド経由でのみアクセスを可能とするデータの隠蔽が可能となる。



[getterとsetter]
メンバ変数に対して、値をsetするメソッドを[setter]
メンバ変数から、値を取得するメソッドを[getter]
と呼称する。


[例]
class Test
{
	//メンバ変数にprivate修飾子を指定
	private int menId;

	//menIdに値をセットするメソッド[setter]
	public void setMenId(int i)
	{
		menId = i;
	}

	//menIdから値を取得するメソッド[getter]
	public int getMenId()
	{
		return menId;
	}
}

以上。




【ブログを始めるなら】

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA