問題タブ [access-specifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
189 参照

c++ - きめ細かいアクセス指定子 c++

私は次のクラスを持っています:-

ここで、f() を特定のクラス セット (クラス B、C、D など) からのみアクセス可能にし、g() を他の特定のクラス セット (クラス D、E、F など) からアクセスできるようにします。これを C++ で指定する方法はありますか? A のすべてのクラスを友達にすると、f と g の両方が B、C、D、E、F (A の他のプライベート メンバーと共に) からアクセスできるようになりますが、これは私が望むものではありません。

これは可能ですか、それともオブジェクト モデルを変更する必要がありますか?

0 投票する
3 に答える
3829 参照

java - Javaで保護されているようなC++

重複の可能性:
データメンバーをクラスとサブクラスのみにアクセス可能にする方法

Javaでは、
保護されたメンバーは、クラス内、そのサブクラス、および同じパッケージに存在するすべてのクラスから
アクセスできますが、メンバーがクラスとそのサブクラスからのみアクセスできるようにしたい(c ++の保護されたメンバーのように)。

例::

ここでは、BがAのサブクラスでなくても、Aのfun()にアクセスできます。

AのサブクラスではないすべてのクラスがAにアクセスできないようにするにはどうすればよいですか?

編集::私はJavaでこれを達成したいです。

0 投票する
2 に答える
16042 参照

java - インターフェイスで「継承されたメソッドの可視性を減らすことはできません」の意味

私は2つのファイルを持っています:

コードは問題ないように見えますが、次の行の 2 番目のファイルでエラーが発生していますvoid print(PrintDetails details) {

から継承されたメソッドの可視性を減らすことはできませんPrintService

誰かがこれが私にとって何を意味するのか説明できますか?

0 投票する
6 に答える
7853 参照

java - Javaクラスのメソッド内で宣言された変数にアクセス指定子を使用できないのはなぜですか?

Javaクラスのメソッド内で宣言された変数にアクセス指定子を使用できないのはなぜですか?

0 投票する
2 に答える
381 参照

java - 保護されたアクセス タイプ

重複の可能性:
Java では、パブリック、デフォルト、保護、およびプライベートの違いは何ですか?

あるパッケージのサブクラスが、スーパークラスの参照によって (別のパッケージの) スーパークラスの保護されたメンバーにアクセスできないのはなぜですか? この点で苦労しています。私を助けてください

0 投票する
1 に答える
369 参照

c++ - 明示的なインスタンス化でプライベートに不適切にアクセスすることが合法であるのはなぜですか?

いったいなぜこれが許されるのでしょうか。

上記のC++の乱用については、JohannesSchaubにクレジットが与えられます。(デモ

あなたがあなたに見えないはずのものにアクセスできる他のケースはありますか?これは標準の単なる「バグ」ですか?

0 投票する
2 に答える
923 参照

c# - JavaとC#のアクセス指定子に関する混乱

JavaとC#のアクセス修飾子を比較していました。protected internalJavaでC#の代替を見つけたかったのです。protectedしかし、修飾子が両方の言語(C#Java )で異なることに気づきました。メンバーも同じパッケージ内でアクセスできるため、protectedJavaではC#と同等です。protected internal

2つの質問があります

  • JavaとC#で同じ修飾子に異なる意味を作成したのはなぜですか?
  • protectedJavaでC#(アクセスは包含クラスまたは包含クラスから派生した型に制限されています)を使用するにはどうすればよいですか?
0 投票する
3 に答える
10354 参照

c++ - == オーバーロードが引数のプライベート メンバーにアクセスできる理由

重複の可能性:
obj のプライベート値をクラス インスタンスで変更できるのはなぜですか?

次の (部分的な) コードを検討してください。

コードがコンパイルされ、結果は適切に見えます。しかし、if演算子のオーバーロード実装の部分で、その引数のプライベートメンバー - に直接アクセスしていますが、そのconst Group& gようなアクセスは無効ではないでしょうか?

0 投票する
2 に答える
3893 参照

c# - インターフェイス メンバーを非公開にできないのはなぜですか?

重複の可能性:
C# インターフェイスの非パブリック メンバー

私が持っているとしましょう

私はこれを得る:

インターフェイス メンバーを実装しません。パブリックではないため、インターフェイス メンバーを実装できません。

修正方法はわかっていますが、なぜ C# でインターフェイス メンバーをプライベートにできないのか疑問に思っています。

ライブラリを書いているときなど、何度もクラスをパターンに合わせたいと思っていましたが、メンバーを公開する必要はありませんでした。そして何よりも、インターフェイス自体は公開されていません:X

注: プライベート インターフェイス メンバーを実装する方法を尋ねているわけではありませんが、この決定の背後にある設計ロジックは知っています。適切な複製が見つかりませんでした。

更新:元のスレッドよりも、別のスレッドの回答からのこのコードサンプルは、ほとんどの説明の回答よりもよく説明しています。またはさらに良いことに、@JonSkeetからこれ

0 投票する
3 に答える
37827 参照

c# - 一貫性のないアクセシビリティ: 基本クラスはクラスよりアクセスしにくい

したがって、DLL に抽象基本クラスとそのクラスの子クラスがあります。子を公開したいのですが、ベースを非公開にして、dll の外部からアクセスできないようにします。

それ、どうやったら出来るの?