C#プログラミングガイド publicの使い方|public、privateの違いの利用事例

公開日時:   更新日時:
C#プログラミングガイド publicの使い方|public、privateの違いの利用事例
基本情報技術者試験の試験対策はこちら>>

SE
publicの使い方を教えてください。

PM
C#dでのpublicの実装例などを挙げて詳しく説明しますね。

C# publicとは?


この記事ではC#におけるpublicの利用方法や簡単な事例について説明しています。C#を勉強し始めるとpublicprivateの記述をよく見かけるようになりますので、基本をまずは理解しましょう。

C#のpublicの概要

C#のpublicキーワードは、型と型のメンバーを示すアクセス修飾子です。 パブリック アクセスは、制限の無いアクセスレベルとする場合に利用します。 C#でpublicを利用する場合には次の例のように型宣言の前に利用します。

C#は型宣言を厳密に定義できるプログラミング言語です。型宣言を行った変数を利用しながらプログラミングを行いますが、どこを外部に公開するかを決める必要がありますが、その際に利用するのがpublicなどのアクセス修飾子になります。

publicの基本的な実装例

すべての見出しに必ずテキスト(文章)を追加してください。

C#のクラスとインスタンス

C#のpublicを説明する前にクラスとインスタンスについて簡単に説明をします。オブジェクト指向のプログラミング言語においては基礎となる部分のため、知っているという方はおさらいとして読んでみてください。

オブジェクト指向のプログラミング言語ではクラスとオブジェクトが存在しています。まず、クラスとはこれから作成する製品の設計図(構造)を決めたものです。それに対してオブジェクトとはクラスの構造にしたがって作成されるものです。

生成されたオブジェクトは元の設計図のインスタンスと呼ばれています。後述のプログラムサンプルにおいてもクラスを定義しておき、new(生成)することでインスタンスとなり、プログラム中で利用できるようになっています。

今回のpublicとは、このインスタンスとして生成された製品が外部からどのように利用できるかを定義するものです。

C#で利用するpublicって何?

C#で利用するpublicをアクセス修飾子と言います。これから「C#でプログラムを作成したい」と思っている方は、まず始めに目にする単語です。publicの他にも複数のアクセス修飾子がありますので、それぞれの特徴とアクセシビリティレベルを説明します。

C#では複数のアクセス修飾子をclassや変数とセットで利用します。

C#のアクセス修飾子とは?

アクセス修飾子とはC#のプログラムの中のclassや変数のアクセシビリティレベルを定義するために利用します。アクセシビリティレベルを定義することでカプセル化など外部から隠蔽することが出来るようになります。

C#のアクセス修飾子の種類

アクセス修飾子は全てのメンバーまたは型の宣言されたアクセシビリティを指定するときに利用されるキーワードです。アクセス修飾子の指定により、どの範囲まで有効であるかのアクセシビリティレベルを決定します。

  • public:publicでは、同じプログラム内の他のコードや、そのプログラムを参照する別のプログラム内の任意のコードからアクセス可能です。
  • private:privateでは、同じ class 内または同じ構造体内のコードからのみアクセス可能です。
  • protected:protectedでは、同じクラス内か、そのクラスから派生したクラス内のコードからのみアクセス可能です。
  • internal:internalでは、同じプログラム内の任意のコードからアクセス可能ですが、別のプログラムからはアクセス不可です。
  • protected internal:protected internalでは、宣言されているプログラム内の任意のコードからアクセスできるほか、別のプログラムの派生クラス内からアクセス可能です。
  • private protected:private protectedでは、同じクラスのコードか、そのクラスから派生した型のコードによって、その宣言したプログラム内でのみ、アクセス可能です。

C#のアクセシビリティレベル

以下にメンバーに適用されるアクセシビリティレベルの宣言について説明をしています。まずは宣言によって有効となる範囲が変わることを理解した上で、使い分けを考えていくようにしてください。

しっかりと違いを理解することで可読性、再利用性の高いプログラムを作成することが出来ます。

  • public:アクセスに制限はなく、利用は無制限です。
  • private:Containerである型にアクセスが限定されます。
  • protected:Containerであるクラスまたは派生した型にアクセスが限定されます。
  • internal:アクセスは現在のプログラム内に限定されます。
  • protected internal:現在のプログラム、またはContainerであるクラスから派生した型にアクセスが限定されます。
  • private protected:現在のプログラム内のContainerであるクラス、またはContainerであるクラスから派生した型にアクセスが制限されます。

C#の実装事例(public)

ここではpublicを利用した場合の事例を記載します。有効範囲を確認出来るように二つのクラスを作成し、その中でどのようにpublicで宣言した変数が利用できるのかを説明しています。

public変数の例の解説

1行目のPointTestクラスの中でpublic変数xとy(3,4行目)を定義しています。その後、7行目にProgramクラスを定義しています。このプログラムではPointTestとProgramの2つのクラスを利用しています。

11行目にPointTestクラスのインスタンスを生成することでProgramクラス内で利用できる状態にしています。インスタンスを生成しましたので、PointTestクラス内で定義されている変数のx,yが利用できようになりました。このプログラムではxとyの和(合計)を求めるクラスになっています。

13行目、14行目でそれぞれxとyに値をセットしています。15行目ではxとyの合計を求め、コンソールに表示する処理を実装しています。

C#のpublicで指定した変数は別のクラスにおいて生成されると関数を通すことなく、直接的に値を変更する実装になっています。

C#の実装事例(private)※コンパイルエラー

ここではpublicとはアクセシビリティレベルが異なるprivateでコーディングした場合の事例を説明しています。

publicprivateを単純に入れ替えるだけでプログラムとしては利用できなくなります。この事例を通して、オブジェクト指向のプログラミング言語のイメージを掴んでもらいます。

private変数の例の解説

1行目のPointTestクラスの中でpublic変数xとy(3,4行目)を定義しています。その後、7行目にProgramクラスを定義しています。このプログラムではPointTestとProgramの2つのクラスを利用しています。

11行目にPointTestクラスのインスタンスを生成することでProgramクラス内で利用できる状態にしています。インスタンスを生成しましたが、今回のプログラムでは変数x,yはprivate変数のためアクセスすることが出来ません。

そのため、13行目から15行目で直接アクセスしている部分がコンパイルエラーになります。

C#のprivateで指定した変数は別のクラスにおいて生成された場合、宣言したClass内にある関数からのみ変更が可能となります。

SE
publicの使い方がわかりました。

PM
publicの理解を深めて、実際にコードを書いてみましょう。

C#でのpublicのまとめ

C#はオブジェクト指向のプログラミング言語です。

オブジェクト指向プログラミングではカプセル化の原則があります。その場合に利用するのが今回紹介したpublicなどのアクセス修飾子です。アクセス修飾子を適切に利用することでカプセル化を実現することが出来、プログラムの可読性と再利用性が向上します。

そのため、publicは無制限に利用することが出来ますが、チームを組んで実装する際には利用箇所や利用方法を厳密に定義することが必要になります。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags