アクセス修飾子とは?
アクセス修飾子は クラスやメソッド、変数などに対して「公開範囲」を指定するキーワード です。
例えば「自分の家のドアの鍵」のようなもの。
- 誰でも入れる(public)
- 家族だけ入れる(protected)
- 自分だけ入れる(private)
といった具合に、「どこまでアクセスを許可するか」を決めます。
C#の主なアクセス修飾子一覧
修飾子 | 説明 | 使える範囲のイメージ |
---|---|---|
public | どこからでもアクセス可能 | 誰でも入れるオープンな公園 |
private | 同じクラス内からのみアクセス可能 | 自分の部屋 |
protected | 同じクラス or 継承したクラスからアクセス可能 | 家族だけ入れる部屋 |
internal | 同じアセンブリ内(プロジェクト内)からアクセス可能 | 同じマンション住民はOK |
protected internal | 同じアセンブリ + 継承クラスからアクセス可能 | 同じマンション+家族 |
private protected | 同じアセンブリ内の継承クラスのみ | マンションに住んでる家族だけ |
実際のコード例
public class Person
{
public string Name; // どこからでもOK
private int age; // このクラスの中だけ
public void SayHello()
{
Console.WriteLine($"こんにちは、{Name}です!");
}
}
そして使ってみると
Person p = new Person();
p.Name = "太郎"; // OK
p.SayHello(); // OK
// p.age = 20; // エラー! privateだから外からは触れない
まとめ
- アクセス修飾子 = クラスやメンバーの公開範囲を決めるカギ
- よく使うのは public と private
- 「外から見せていいもの」と「隠すべきもの」を分けるのが大事!
ポイントは 「情報を隠す」こと(カプセル化)。
全部 public にしてしまうと安全性がなくなるので、まずは 基本は private、必要なら public を意識する。
続き
【C#】アクセス修飾子を省略したらどうなる?
【C#】なぜトップレベルクラスには public と internal しか使えないのか?