c#を攻略しよう

c#

アクセス修飾子

クラスの中で定義される変数やメソッドのことをメンバといい、メンバを定義する際に、外部クラスから、そのメンバに対してアクセスできるかどうかを判別するものをアクセス修飾子いいます。


[TOP]


 

class Print
{
    public int a;
    privete int b;
    int c; //アクセス修飾子をつけない場合は、priveteなメンバとみなされます
   
    public void maisu( )
    {
       処理1
    }

    private void henkou( )
    {
       処理2
    }
}

class main_program
{
   public static void Main( ){
       Print pri = new Print( ); //1.オブジェクト作成
       pri.a=5; //2.priオブジェクトの変数aに5を代入
       pri.maisu( ); //3.関数呼び出し

//以下のコードはエラーになります。
       pri.b=10; //4.プライベートなメンバ変数にはアクセスできません
       pri.henkou( ); //5.プライベートなメンバ関数にはアクセスできません
       pri.c=18; //6.プライベートなメンバ変数にはアクセスできません
   }
}

メンバを定義する際に、「public」というアクセス修飾子をつけると、そのメンバは、そのクラスの外にあるプログラムからでもアクセスできるようになります。
「private」というアクセス修飾子をつけると、そのメンバは、クラスの外にあるプログラムからはアクセスできなくなります。
すべてのメンバについてすべてプログラムからアクセスできるとすると、そのクラスを再利用する人間が変わればエラーが発見できないまま製品化されてしまう可能性があり、好ましくありません。そこでアクセス修飾子を使いアクセスできるメンバを限定することで、コンパイル時にエラーを表示させ、予期せぬエラーを未然に防ぐ方法が考案されたのです。外部からのアクセスを限定し、メンバを隠してしまうことをカプセル化といいます。
アクセス修飾子を省略した場合は、プライベートなメンバとみなされます。

アクセス修飾子には次のようなものがあります。

public どこからでもアクセスできる
private 同一クラス内のみアクセスできる
protected 同一クラス、派生クラスのみアクセスできる

戻る

※当サイトは、リンクフリーです。