工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

C#におけるアクセス修飾子とは

アクセス修飾子(アクセス指定子)は、型と型メンバーの可視性を制御するキーワードであり、C#におけるカプセル化の基盤です。クラス、プロパティ、メソッドを参照できるコードを決定し、意図したプログラム部分のみが内部実装詳細と対話できるようにします。

C#には6つのアクセス修飾子があります:

このチュートリアルでは以下を学びます:

Privateアクセス修飾子

メンバーをprivateでマークすると、その使用を包含クラスのみに制限します。外部コード(同じアセンブリ内の他クラスを含む)はprivateメンバーを参照できません。

Privateアクセス修飾子の例

Tutorial.csのSetTutorialを変更してこのルールを説明します。publicキーワードをprivateに変更:

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

次にProgram.csに切り替えます。コンパイラがSetTutorial呼び出しに赤い波線を表示し、この場所からメソッドにアクセスできないことを示します。

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

Publicアクセス修飾子

Publicメンバーは、包含型を参照できるあらゆるコードから可視です。アクセス修飾子を指定しないメンバーのデフォルトです。

Publicアクセス修飾子の例

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

SetTutorialがpublicで宣言されているため、Program.csからコンパイルエラーなしで呼び出せます。

Protectedアクセス修飾子

protectedメンバーは、自身のクラスと派生クラス内でのみアクセス可能です。このアクセスレベルは、再利用可能な基底クラスを作成しつつ、内部実装を保護するのに最適です。

Internalアクセス修飾子

Internalメンバーは、同じアセンブリ内のすべてのコードから可視ですが、他のアセンブリのコードからは不可視です。ライブラリコンポーネントをライブラリのコンシューマーのみに公開する場合に有用です。

C#コンストラクタ

コンストラクタはクラスの新しいインスタンスを初期化します。クラス名と同名で、戻り値の型を持たず、new使用時に自動的に呼び出されます。

  1. コンストラクタのデフォルトアクセスは、別途指定がない限りpublic。
  2. コンストラクタは戻り値の型を宣言できない。

C#コンストラクタの例

Tutorialオブジェクト作成時にTutorialIDとTutorialNameのデフォルト値を設定するコンストラクタをデモンストレートします。

ステップ1) Tutorial.csにコンストラクタを追加:

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

コード解説

  1. Tutorialと名付けられたメソッドがコンストラクタとして扱われ、インスタンス作成時に自動実行されます。
  2. コンストラクタはTutorialIDに0、TutorialNameに"Default"を割り当て、一貫した初期状態を保証。

Program.csでSetTutorial呼び出しを削除し、コンストラクタの振る舞いに焦点を当てます:

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication {
    class Tutorial {
        public int TutorialID;
        public string TutorialName;
        public Tutorial() {
            TutorialID = 0;
            TutorialName = "Default";
        }
        public void SetTutorial(int pID, string pName) {
            TutorialID = pID;
            TutorialName = pName;
        }
        public string GetTutorial() {
            return TutorialName;
        }
        static void Main(string[] args) {
            Tutorial pTutor = new Tutorial();
            Console.WriteLine(pTutor.GetTutorial());
            Console.ReadKey();
        }
    }
}

コード解説

  1. newキーワードでTutorialインスタンスを作成。
  2. GetTutorialメソッドがデフォルトのTutorialNameを取得し、Console.WriteLineで表示。

実行時、コンソールには以下が表示されます:

出力:

C#アクセス修飾子完全解説:実例で理解するカプセル化の仕組み

出力はコンストラクタが実行され、TutorialNameが"Default"で初期化されたことを確認します。

注: "Default"という値は外部コードではなく、コンストラクタ由来です。

まとめ


C言語

  1. C# アクセス修飾子を理解する:public、private、protected、internal など
  2. C++ do-while文:構文、実践例、ネストしたループ
  3. C++ポインタをマスター:概念、例、実践的応用
  4. C++演算子オーバーロード:コード例付き実践ガイド
  5. C++関数を実例で徹底解説:基本から応用まで
  6. C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
  7. Python str.count()マスター:文字と部分文字列のカウント実例集
  8. Python round()関数を実例で徹底解説
  9. Python map()関数をマスター:構文、例、ベストプラクティス
  10. Python timeit():実行時間測定の実例付きガイド
  11. Python list.count() 完全ガイド:実践例付きで徹底解説