105

オブジェクト指向プログラミングでパブリック、プライベート、保護されているものは何ですか?

4

6 に答える 6

169

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

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

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

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

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

于 2009-06-20T02:23:26.400 に答える
11

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

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

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

于 2009-06-20T02:11:31.027 に答える
8

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

于 2011-04-11T11:53:45.000 に答える
3

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

于 2009-06-20T02:10:57.673 に答える
0

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

于 2009-06-20T09:44:36.377 に答える