問題タブ [protected]
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.
java - Java 保護されたアクセスが機能しない
Java には、次の 3 つのレベルのアクセスがあります。
- 公開 - 世界に公開
- プライベート - クラスのみに公開
- 保護 - クラスとそのサブクラスに対してのみ開かれます (継承)。
では、なぜ Java コンパイラはこれを許可するのでしょうか?
TestBlah.java:
Blah.java:
Bloo.java:
javascript - Javascript を使用した Vista IE7 保護モードの検出
できればJavaScriptを使用して、ページ内でVista IE7保護モードを検出できるようにしたいと思います。私の考えは、保護モードに違反するアクションを実行して、それを公開することです。目標は、適切なサイト ヘルプ メッセージを IE7 Vista ユーザーに提供することです。
c# - 基本クラスのセッターまたはゲッターを使用するc#
サブクラスがこれらの変数にアクセスできるように、基本クラスのメンバー変数を保護に設定することをお勧めしますか? それとも、メンバー変数をプライベートに設定し、サブクラスがゲッターとセッターによって変数を取得または設定できるようにすることをお勧めしますか?
また、getter メソッドと setters メソッドの使用が推奨されている場合、保護された変数はいつ使用されますか?
c++ - C ++で実際にプライベートまたは保護された継承が必要なのはなぜですか?
C ++では、基本クラスからプライベート/保護を継承したい場合は考えられません。
本当に便利ですか?
variables - jmockitを使用してスーパークラスの保護された変数をモックする
スーパークラスで定義された保護された変数をモックできませんでした。スーパークラスで保護されたメソッドをモックできましたが、保護された変数をサブクラスにモックできませんでした。サブクラスのテストケースを書いています。それに対する解決策。返信してください。
ありがとうシャシ
java - java.lang.Object の保護されたメソッドは、サブクラスからどのように保護されていますか?
このキーワードprotected
は、同じパッケージおよびサブクラス内のクラスへのアクセスを許可します ( http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html )。
現在、すべてのクラスはjava.lang.Object
スーパークラス ( http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html ) として持っています。
java.lang.Object
したがって、すべてのクラスがのメソッドにアクセスできると結論付けますprotected
。
次の例を見てください。
正常にgetOne()
コンパイルされますgetTwo()
が、
がコンパイルされない理由も、( s メンバーgetTwo()
のアクセスに関して) との違いもわかりません。java.lang.Object
getOne()
c# - 保護されたインターフェイスメンバーを使用できないのはなぜですか?
インターフェイスで保護されたアクセスメンバーを宣言することに反対する議論は何ですか?たとえば、これは無効です。
この例では、インターフェースは、実装者が少なくとも継承者にインスタンスを提供するIOrange
ことを保証します。実装者が望む場合は、スコープを完全に拡張できます。OrangePips
public
インターフェイスのメンバーの目的は、継承者(サブクラス)にprotected
サポートコントラクトを提供することです。次に例を示します。
(確かに、これはsでは機能しませんstruct
)
インターフェイスのprivate
または修飾子のケースの多くはわかりませんが、と修飾子の両方をサポートすることは完全に合理的であるように思われます。internal
public
protected
メンバーをsから完全に分離することにより、sのprotected
メンバーの有用性を説明してみます。interface
interface
継承者のコントラクトを適用するための新しいC#キーワード、を想像してみましょうsupport
。これにより、次のように宣言できます。
これにより、クラスを契約して、保護されたメンバーを継承者に提供できます。
protected
クラスは、そもそもメンバーを提供することによってこの契約をすでに暗示しているため、これは特に有用ではありません。
しかし、これを行うこともできます:
IOrangeSupport
これにより、実装するすべてのクラスに適用しIOrange
、特定のメンバーを提供するように要求しprotected
ます。これは、現在私たちができることではありません。
c# - このようにしないと、C# で保護されたメンバーにアクセスできないのはなぜですか?
このコード:
次のエラーが生成されます。
タイプ 'C' の修飾子を介して保護されたメンバー 'CF(D)' にアクセスできません。修飾子はタイプ 'D' (またはそれから派生したもの) でなければなりません
彼らはいったい何を考えていたのでしょうか。(そのルールを変更すると何かが壊れるでしょうか?) そして、F を公開する以外にそれを回避する方法はありますか?
編集:これがなぜなのか理由がわかりました(Gregに感謝します)が、合理性についてはまだ少し当惑しています。与えられた:
D が EF を呼び出せないのはなぜですか?
エラーメッセージは編集されているため、タイプミスがある可能性があります。
java - Javaリフレクション-アクセス保護フィールド
リフレクションによってオブジェクトから継承された保護フィールドにアクセスするにはどうすればよいですか?