.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#プログラミングガイド publicの使い方|public、privateの違いの利用事例

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

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

    システム
    エンジニア
    publicの使い方を教えてください。

    プロジェクト
    マネージャー
    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内にある関数からのみ変更が可能となります。

    システム
    エンジニア
    publicの使い方がわかりました。

    プロジェクト
    マネージャー
    publicの理解を深めて、実際にコードを書いてみましょう。

    C#でのpublicのまとめ

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

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

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

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job