タグ付けされた質問 「access-modifiers」

アクセス修飾子はOOPの概念です。特定のプロパティ/メソッド/クラスが持つアクセスまたは可視性のレベルを決定します。







17
Swiftにはアクセス修飾子がありますか?
Objective-Cのインスタンスデータはpublic、protectedまたはprivateです。例えば: @interface Foo : NSObject { @public int x; @protected: int y; @private: int z; } -(int) apple; -(int) pear; -(int) banana; @end Swiftリファレンスにアクセス修飾子に関する記述は見つかりませんでした。Swiftでデータの可視性を制限することは可能ですか?

16
C#でプライベートプロパティを使用する理由はありますか?
C#のプロパティコンストラクトはプライベートアクセス修飾子でも使用できることを認識しました。 private string Password { get; set; } これは技術的に興味深いものですが、プライベートフィールドでは式典が少なくなるため、いつ使用するかは想像できません。 private string _password; 私が今まで内部でできるようにする必要があるだろうというとき、私は想像することはできません取得ではなく、設定やセットではなく、取得プライベートフィールド: private string Password { get; } または private string Password { set; } しかし、おそらく、ネストされたクラスまたは継承されたクラスの使用例があるか、またはプロパティの値を返すだけでなく、get / setにロジックが含まれている可能性があります。例えばGetEncodedPassword()。 誰かが何らかの理由でC#でプライベートプロパティを使用していますか、それとも、技術的には可能ですが実際にはほとんど使用されていない実際のコード構成の1つにすぎませんか? 補遺 それらを読んで、私は私有財産のこれらの使用法を選別しました: プライベートフィールドを遅延読み込みする必要がある場合 プライベートフィールドが追加のロジックを必要とする場合、または計算された値である場合 プライベートフィールドはデバッグが難しいため 「自分に契約を提示する」ため シリアル化の一部として公開されたプロパティを内部的に変換/簡略化する クラス内で使用されるグローバル変数をラップする


5
Javaには「プライベート保護」アクセス修飾子がありますか?
いくつかの参照がJavaのアクセス修飾子を参照しているprivate protected(両方の単語を一緒に)のを見たことがあります。 private protected someMethod() { } これについて私が見つけたページの1つはこちらです。私の学校の授業でも、このアクセス修飾子を参照しました(そして存在すると述べました)。ただし、これを使用すると、Java言語でエラーが発生します。 変数とメソッドの両方を試してみましたが、存在しないことは確かですが、何が起こったのかについての説明が必要です。検討された後、拒否されましたか?それとも、新しいバージョンのJavaで削除されましたか? 編集:protectedキーワードに関する情報を探していません。


2
Typescriptがキーワード「export」を使用してクラスとインターフェースを公開するのはなぜですか?
Typescriptに手を加えている間、(名前空間として使用されている)モジュール内のクラスはexport、次のようにその前にキーワードを記述しない限り、他のクラスでは使用できないことに気付きました。 module some.namespace.here { export class SomeClass{..} } これで、上記のコードを次のように使用できます。 var someVar = new some.namespace.here.SomeClass(); ただしpublic、メソッドまたはプロパティに外部からアクセスできることを示すためにメソッドレベルで使用されるキーワードを使用するのではなく、なぜこのキーワードが使用されるのか疑問に思いました。では、なぜこの同じメカニズムを使用して、クラスやインターフェースなどを外部から見えるようにしないのでしょうか。 これにより、次のようなコードが生成されます。 module some.namespace.here { public class SomeClass{..} }

6
計画されている「プライベート保護された」C#アクセス修飾子の意味は何ですか?
GitHub のRoslynドキュメントの一部として、C#とVBの言語機能が計画されている、言語機能の実装ステータスというページがあります。 私の頭を包むことができなかった1つの機能は、private protectedアクセス修飾子でした。 private protected string GetId() { … } C#言語のデザインノートのページもあります。このページには、多くの新機能が説明されていますが、これは説明されていません。 エリックリッパートはコメントで言った: あなたの過ちは、修飾子を制限の増加として考えることです。実際、修飾子は常に制限を減らします。デフォルトでは「プライベート」であることに注意してください。修飾子を追加するだけで、制限が緩和されます。 の意味はprivate protected何ですか?いつ使用できますか?

9
C#で「プライベート」キーワードを記述する理由は何ですか?
私の知る限りでは、privateデフォルトでどこでも C#では(私は書いていない場合つまりpublic、protected、internal、など、それはなりますprivateデフォルトでは)。(間違いがあったら訂正してください。) それで、そのキーワードを書く理由は何ですか、またはなぜそれがメンバーのために存在するのですか? たとえば、イベントハンドラーが自動生成されると、次のようになります。 private void RatTrap_MouseEnter(object sender, CheeseEventArgs e) { } しかし、それが暗黙的でデフォルトであるのに、なぜそれはプライベートでさえ書くのですか?初心者の開発者(C#のデフォルトであることを知らない人)がプライベートであることを知っているだけですか?それともコンパイラに違いはありますか? また、「プライベート」(単独)でメンバーのアクセシビリティが変わるケースはありますか?

7
Pythonの「プライベート」(実装)クラス
2つの部分で構成される小さなPythonモジュールをコーディングしています。 公開インターフェースを定義するいくつかの関数、 上記の関数で使用される実装クラスですが、モジュールの外部では意味がありません。 最初は、この実装クラスを使用して関数内に定義することにより、この実装クラスを「隠す」ことにしましたが、これは読みやすさを妨げ、複数の関数が同じクラスを再利用する場合は使用できません。 では、コメントとドキュメント文字列に加えて、クラスを「プライベート」または「内部」としてマークするメカニズムはありますか?アンダースコアのメカニズムは知っていますが、理解すると、変数、関数、メソッド名にのみ適用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.