問題タブ [access-modifiers]

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 投票する
3 に答える
1964 参照

c++ - C ++:他のプライベートメンバーを公開せずに、特定のメソッドへのアクセスを特定のクラスに制限する方法はありますか?

保護されたメソッドZig::punt()を持つクラスがあり、クラス「Avocado」にのみアクセスできるようにしたい。C ++では、通常、「friend Avocado」指定子を使用してこれを行いますが、これにより、他のすべての変数が「Avocado」クラスにアクセスできるようになります。これはカプセル化を壊すので、私はこれを望んでいません。

私が望んでいることは不可能ですか、それとも私が望んでいることを達成するために使用できるあいまいなトリックがすでにそこにありますか?または、同じことを実現する代替のクラスデザインパターンでしょうか?

アイデアをよろしくお願いします!

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

entity-framework - エンティティ フレームワーク : [すべてのエンティティを内部アクセス指定子で設定]

アプリケーションのおかげで、ビジネス エンティティを EF4 によって作成されたエンティティから分離する必要があります。エンティティが (トランスレータを使用して) 変換された場所から、ビジネスおよびサービス層で共有されるビジネス エンティティにのみアクセスするようにエンティティを制限する必要があります。それらを内部として指定することでそれらを制限することを考えました。現在、私のアプリケーションには 40 を超えるエンティティがあるため、それらを手動で内部として設定するのは困難な作業です。フォーラムの 1 つで、T4 テンプレートを使用して回答が提案されました。しかし、これらのテンプレートでさえ、エンティティ フレームワーク アクセス指定子から読み取ります。すべてのプロパティとクラス アクセス指定子を内部として手動で指定しようとすると、エンティティ セットも内部に設定する必要があるというエラーが表示されますが、同じオプションはありません。VS 2010 と Entity Framework 4 を使用しています。

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

php - PHP5: 関数へのアクセスを特定のクラスに制限する

特定のクラスまたはクラスのセットのみが特定の関数を呼び出すことを PHP5 に許可する方法はありますか? たとえば、3 つのクラス (「Foo」、「Bar」、および「Baz」) があり、すべて同様の名前のメソッドがあり、Bar が呼び出しできるようにしたいFoo::foo()が、Baz がその呼び出しを行う機能を拒否するとします。

Foo、Bar、および Baz の間に必ずしも継承があるとは限らないため、protectedまたは同様の修飾子を使用しても役に立ちません。ただし、メソッドは必ずしも静的ではありません (例を簡単にするために、ここではそのようにしています)。

0 投票する
4 に答える
31950 参照

java - 別のパッケージにある場合、サブクラスがそのスーパークラスの保護された変数にアクセスできないのはなぜですか?

パッケージには抽象クラスがありrelation、パッケージdatabase.relationにはそのサブクラスがありJoinますdatabase.operationsrelation。という名前の保護されたメンバーがありmStructureます。

Join

オンライン

次のエラーが発生します。

フィールドRelation.mStructureは表示されません

両方のクラスを同じパッケージに入れると、これは完全に機能します。誰かがこの問題を説明できますか?

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

vb.net - VB.NET の視覚的継承: Friend VS Protected

一部のコンポーネント/コントロールが、アクセス修飾子 Friend で宣言されているのに対し、Protected で宣言されている場合、子フォームで視覚的に継承されないのはなぜですか。

たとえば、最初は「フレンド」だった親フォームに DataSet オブジェクトがあります (フォームにドラッグ アンド ドロップしたため、デザイナー ビューでコントロールとして表示されました)。期待どおりにコントロールを継承しませんでした。「保護」に変更すると、期待どおりに子フォームに表示されました。

Protected によって子フォームが継承されたコントロールを変更できることは承知していますが、これは上記の問題とどのように関連しているのでしょうか?

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

java - 他のパッケージの保護されたメソッドにアクセスしますか?

私が言うなら

次に、暗黙的に Object クラスを継承します。したがって、クラスは次のようになります。

クラスAの同じパッケージにあるクラスBのclone()メソッドにアクセスできないのはなぜですか。

//** clone は Object class で保護されていると言います。しかし、私は Object の clone メソッドにアクセスしていません。ここでは、まだオーバーロードしていないクラス A の clone メソッドを呼び出しています。

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

c++ - アクセス修飾子は静的クラス関数に対して機能しますか?

protected次のように、静的クラス関数を持つコードに出くわしました。

静的クラス関数がアクセス修飾子を持つことができるかどうかに興味がありましたが、それはどういう意味ですか? それらはクラス グローバルであり、事前インスタンスではないためです。

ありがとう、ボダ・シド。

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

.net - [アセンブリ:InternalsVisibleTo()]はいつ使用する必要がありますか?

InternalVisibleTo属性は、内部アクセス修飾子を持つタイプとメソッドを指定されたアセンブリに公開するために使用されることを理解しています。私はこれまで、一連の単体テストを含む別のアセンブリに内部メソッドを公開するためにこれを使用したことがあります。

これを使用する必要がある場合、別のシナリオを考えるのに苦労しています。この属性は、単体テストを支援するために特別に導入されたのですか、それとも別の理由がありましたか?

0 投票する
4 に答える
1068 参照

c# - クラスに適用できるアクセス修飾子にはどのようなものがありますか?

少し調査した結果、クラスに適用できるアクセス修飾子は次のとおりであることがわかりました。

  • public - 任意のアセンブリで利用可能
  • internal - 現在のアセンブリでのみ使用可能

ただし、以下のエラー メッセージは、クラスが名前空間で定義されていない場合、それがprivateprotected、またはprotected internalとして定義される可能性があることを暗示しているようです。

クラスで使用できるクラス修飾子は public と internal だけですか?それとも他にもありますか?

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

c# - 修飾子システム C#

その場でオブジェクトを簡単に変更できるシステムを見つけようとしています。

ここに例があります。エンティティから継承する Entity2D があるとしましょう。Entity2D には Position プロパティがあります。

これで、Modifier を継承する ModifyPosition というクラスができました。

ここにいくつかのコードがあります

しかし、これを毎秒複数回呼び出すと、キャストによって速度が低下すると思います。

キャストせずにこれを行う別の方法はありますか?