パッケージのC#
パッケージは次のように定義される「物理的または論理的なパッケージに囲まれた1つまたは複数のアイテムを。 "オブジェクト指向のプログラミング方法では、パッケージは、実装の詳細へのアクセスを防止することです。
抽象化とカプセル化はオブジェクト指向するプログラミング機能に関連しています。 抽象化は、関連する情報の可視化を可能にする、パッケージには、プログラマが抽象化の所望のレベルを達成することができます。
達成するために、パッケージのアクセス修飾子 。アクセス修飾子は、クラスメンバーの有効範囲と可視性を定義します。次のようにC#のは、アクセス修飾子をサポートしています。
- パブリック
- プライベート
- 保護されました
- 内部
- 保護された内部
パブリックアクセス修飾子
パブリックアクセス修飾子は、他の関数とオブジェクトにさらされ、そのメンバ変数とメンバ関数にクラスを可能にします。 公共の任意のメンバーは、クラス外部からアクセスすることができます。
次の例では、この点を示しています。
システムを用いました。 名前空間のRectangleApplication { クラス長方形 { //メンバ変数公共倍長。 公共ダブル幅; 公共ダブルGETAREA() { 長さ*幅を返します。 } 公共ボイドディスプレイ() { Console.WriteLineを( "長さ:{0}"、長さ); Console.WriteLineを( "幅:{0}"、幅); Console.WriteLineを( "サイズ:{0}"、GETAREA()); } } // RectangleクラスExecuteRectangle終了 { 静的な無効メイン(文字列[] args) { 矩形R =新しいRectangle(); r.length = 4.5; r.width = 3.5; r.Display()。 Console.ReadLine(); } } }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
长度: 4.5 宽度: 3.5 面积: 15.75
上記の例では、メンバ変数の長さと幅は、publicとして宣言されているので 、関数main()の例rを訪問Rectangleクラスすることができます。
メンバ関数の表示()とGETAREA()あなたが直接、これらの変数にアクセスすることができます。
メンバ関数の表示は()もpublicとして宣言されているので、それはまた、メイン()例rを訪問Rectangleクラスすることができます。
プライベートアクセス修飾子
プライベートアクセス修飾子は隠れた他の関数やオブジェクトへのメンバ変数とメンバ関数にクラスを可能にします。 機能のみの同じクラスで、あなたはそのプライベートメンバにアクセスすることができます。 でもクラスのインスタンスはプライベートメンバーにアクセスすることはできません。
次の例では、この点を示しています。
システムを用いました。 名前空間のRectangleApplication { クラス長方形 { //メンバ変数プライベート倍長。 プライベートダブル幅; 公共ボイドAcceptdetails() { Console.WriteLineを( "長さを入力してください:"); 長さ= Convert.ToDouble(Console.ReadLine()); Console.WriteLineを( "幅を入力してください:"); 幅= Convert.ToDouble(Console.ReadLine()); } 公共ダブルGETAREA() { 長さ*幅を返します。 } 公共ボイドディスプレイ() { Console.WriteLineを( "長さ:{0}"、長さ); Console.WriteLineを( "幅:{0}"、幅); Console.WriteLineを( "サイズ:{0}"、GETAREA()); } } //エンドクラスの長方形 クラスExecuteRectangle { 静的な無効メイン(文字列[] args) { 矩形R =新しいRectangle(); r.Acceptdetails()。 r.Display()。 Console.ReadLine(); } } }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
長さを入力してください: 4.4 幅を入力してください: 3.3 長さ:4.4 幅:3.3 エリア:14.52
上記の例では、メンバ変数の長さと幅は、プライベートとして宣言されているので、関数のMain()にアクセスすることはできません。
メンバー関数AcceptDetails()およびディスプレイ()あなたはこれらの変数にアクセスすることができます。
()メンバ関数AcceptDetailsので()と表示publicとして宣言されているので 、 メイン()の例R訪問 Rectangleクラスすることができます。
保護されたアクセス修飾子
保護されたアクセス修飾子は、サブクラスは、そのメンバ変数と基底クラスのメンバ関数へのアクセスを許可します。 これは、継承を実現します。 我々は、セクションの継承でより詳細にこれについて説明します。 我々は、より詳細には、これを議論します。
内部アクセス修飾子
内部アクセス指定子は、現在のプログラム他の関数やオブジェクトにさらされ、そのメンバ変数とメンバ関数にクラスを可能にします。 アプリケーションアクセスによって定義される他の言葉では、内部アクセス修飾子を持つ任意のメンバーは、任意のクラスまたはメンバーの方法で定義することができます。
次の例では、この点を示しています。
システムを用いました。 名前空間のRectangleApplication { クラス長方形 { //メンバー変数の内部二重の長さ。 内部二重幅。 ダブルGETAREA() { 長さ*幅を返します。 } 公共ボイドディスプレイ() { Console.WriteLineを( "長さ:{0}"、長さ); Console.WriteLineを( "幅:{0}"、幅); Console.WriteLineを( "サイズ:{0}"、GETAREA()); } } //エンドクラスの長方形 クラスExecuteRectangle { 静的な無効メイン(文字列[] args) { 矩形R =新しいRectangle(); r.length = 4.5; r.width = 3.5; r.Display()。 Console.ReadLine(); } } }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
長さ:4.5 幅:3.5 エリア:15.75
上記の例では、そのメンバ関数GETAREAを(注意)ときに任意のアクセス修飾子なしの声明。 あなたはアクセス修飾子を指定しない場合は、クラスのメンバーのデフォルトのアクセス修飾子がプライベートで使用します。
保護された内部アクセス修飾子
保護された内部アクセス修飾子には、メンバー変数やオブジェクトの他のクラスのメンバ関数と非表示にする以外、同じアプリケーション内のサブクラスにクラスを可能にします。 これはまた、継承のために使用されます。