オブジェクト指向プログラミングにおけるパブリック、プライベート、および保護とは何ですか?

StackOverflow https://stackoverflow.com/questions/1020749

質問

オブジェクト指向プログラミングで公開、非公開、保護されているものは何ですか?

役に立ちましたか?

解決

これらはアクセス修飾子であり、カプセル化(または情報隠蔽)。これらは、定義されているフィールドまたはメソッドにアクセスする他のクラスをコンパイラに指示します。

プライベート -現在のクラスのみがフィールドまたはメソッドにアクセスできます。

protected -このクラスの現在のクラスとサブクラス(および場合によっては同じパッケージクラス)のみがフィールドまたはメソッドにアクセスできます。

public -どのクラスでもフィールドを参照したり、メソッドを呼び出したりできます。

これらのキーワードは、クラス定義内のフィールドまたはメソッド宣言の一部として使用されることを前提としています。

他のヒント

これらは実際には概念ではなく、C ++やJavaなどの一般的な言語で(わずかに異なるセマンティクスで)発生する傾向がある特定のキーワードです。

本質的には、クラスがメンバー(フィールドまたは関数)へのアクセスを制限できるようにすることを目的としています。つまり、あるタイプが別のタイプでアクセスを許可されるほど、依存関係が少なくなるということです。これにより、参照するオブジェクトに影響を与えることなく、アクセスしたオブジェクトをより簡単に変更できます。

大まかに言うと、パブリックとは全員がアクセスできることを意味し、プライベートとは同じクラスのメンバーのみがアクセスできることを意味し、プロテクトとはサブクラスのメンバーも許可されることを意味します。ただし、各言語はこれに独自のものを追加します。たとえば、C ++では、非公開で継承できます。 Javaには、デフォルト(パッケージ)アクセスレベルもあり、内部クラスなどに関するルールがあります。

3つすべては、クラスで使用されるアクセス修飾子とキーワードです。 publicで宣言されたものはクラス内またはクラス外のオブジェクトで使用できます。privateの変数はクラス内のオブジェクトでのみ使用でき、直接アクセスでは変更できません(フレンド関数などの関数で変更できるため) .protectedセクションで定義されたものはすべて、クラスとその派生クラスで使用できます。

パブリックアイテムは、他のクラスからアクセスできるアイテムです。オブジェクトが何であるかを知るだけで、ドット演算子を使用してアクセスできます。保護とは、クラスとそのサブクラスが変数にアクセスできることを意味しますが、他のクラスにはアクセスできません。変数で何かを行うにはゲッター/セッターを使用する必要があります。プライベートとは、そのクラスのみが変数に直接アクセスできることを意味し、他のすべてはそのデータにアクセスまたは変更するためのメソッド/関数を必要とします。これがお役に立てば幸いです。

要約すると、オブジェクト指向プログラミングでは、すべてがクラスとオブジェクトにモデル化されます。 クラスにはプロパティとメソッドが含まれます。 public、private、およびprotectedキーワードは、他のクラスまたは他の.dllまたは他のアプリケーションからクラスのこれらのメンバー(プロパティおよびメソッド)へのアクセスを指定するために使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top