問題タブ [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.
java - アクセス指定子とアクセス修飾子の違いは何ですか?
Javaでは、アクセス指定子とアクセス修飾子は同じものですか?
c++ - C++ プライベートは本当にプライベートですか?
private
C++ でアクセス指定子の妥当性を試していました。ここに行きます:
インターフェース:
実装:
これを静的ライブラリ (.a/.lib) に組み込みました。これで、class_A.h と classA.a (または classA.lib) のペアができました。class_A.h を編集して削除しprivate:
ました。
今別のクラスTester.cppで:
ライブラリのヘッダーを改ざんした後、すべての賭けがオフになることを知っています (つまり、システムの整合性など)。メソッドはハックされていますが、これは本当に許可されていますか? これをブロックする方法はありますか?それとも、ここで何か間違ったことをしていますか?
ruby - RubyでObject#sendを使用してプライベート/保護されたメソッドにアクセスできるのはなぜですか?
クラス
Aのインスタンス
テスト
テスト出力
。テストを送信
。出力を送信
質問
「テスト出力」というラベルの付いたセクションは、期待される結果です。では、なぜ私は単純にプライベート/保護されたメソッドにアクセスできるのObject#send
ですか?
おそらくもっと重要です:
Rubyのpublic
//の違いは何ですか?それぞれをいつ使用しますか?誰かが実際の例と使用法を提供できますか?private
protected
private
protected
ruby - ルビーの「個人的な」方法
メソッドを「パーソナル」にする方法を探しています-クラスにプライベートではないことに注意してください
ここに例があります-「個人的」とは、メソッド「foo」の動作を意味します
私は次の動作を生成する方法を探しています
ruby - に対応する?および保護されたメソッド
どのように応答するかはあまり明白ではないかもしれません。ルビーで動作します。次のことを考慮してください。
したがって、「obj」が protected_method に応答する場合、期待する必要があります
例外を発生させないでくださいね。
...しかし、明らかに上昇します
ドキュメンテーションは、respond_to? を呼び出すことを指摘していますか? 2 番目の引数を true に設定すると、プライベート メソッドもチェックされます
そして、それははるかに合理的です
問題は、オブジェクトがパブリック メソッドのみに応答するかどうかを確認する方法です。それよりも良い解決策はありますか?
c++ - C++クラスアクセス指定子の詳細度
「従来の」C++クラス(いくつかのランダムな宣言)は、次のようになります。
このタイプのアクセスレベルの仕様は、元のプログラマーが自分の「アクセス領域」をきちんと整理していなければ、醜くて従うのが難しいといつも思っていました。
Java / C#スタイルの同じスニペットを見ると、次のようになります。
私の意見では、アクセス指定子はターゲットのすぐ隣にあり、行の束ではないため、これはヘッダーではるかに読みやすくなっています。これは、通常の「* .hpp/*。inl」ペアに分離されていないヘッダーのみのテンプレートコードを使用する場合に特に当てはまります。そのシナリオでは、関数の実装のサイズがこの小さいが重要な情報を圧倒しました。
私の質問は単純で、他の誰かがC++コードでこれを積極的に行っているのを見たことがないという事実から生じています。
「クラスビュー」対応のIDEがないと仮定すると、このレベルの冗長性を使用することの明らかな欠点はありますか?
他のスタイルの推奨事項は大歓迎です!
c++ - クラスメンバーアクセス指定子とバイナリコード
典型的なアクセス指定子とは何か、そしてそれらが何を意味するのかを理解しています。「パブリック」メンバーはどこからでもアクセスでき、「プライベート」メンバーは同じクラスや友達だけがアクセスできます。
私が疑問に思っているのは、どちらかといえば、これが低レベルの用語で何に相当するかということです。それらが使用されている言語(この場合はc ++)によって課せられた高レベルの制限(何が何にアクセスできるか)を超えて、これらの間のコンパイル後の機能の違いはありますか?
別の言い方をすれば、これがプログラマーが常に良い選択をした完璧な世界である場合(後で変更される可能性のあるメンバーにアクセスせず、実装間で同じままである必要がある明確に定義されたメンバーのみを使用するなど)、これらを使用する理由は何ですか?もの?
delphi - DPR からのサブ関数 / プロシージャへのアクセス、または Delphi の他の関数 / プロシージャへのアクセス
私が知っている限り-サブルーチンは、その親関数/プロシージャへのプライベートアクセスモードになっていますよね?
「外界」からそれらにアクセスする方法はありますか - ユニット内の dpr または他の関数/手順ですか?
また、コンパイルされたファイルにより多くの計算とスペースが必要な方法はどれですか?
例えば:
ruby - Ruby でプライベート クラス定数を作成する方法
Rubyでは、プライベートクラス定数をどのように作成しますか? (つまり、クラス内では見えるが外では見えないもの)
ruby - Rubyでプライベート、プロテクト、パブリックの修飾子を使用する必要がありますか?
私はC#のバックグラウンドを持っていますが、暇なときにRubyを学んでいます。
与えられたクラスでは、それらのメソッドprivate
を、public
(デフォルト)または。にすることができますprotected
。私はそれらの使用法を理解していますが、ユーザーがアクセスを簡単にオーバーライドできる動的言語であるにもかかわらず、Rubyコードがそのような修飾子を使用するのは一般的ですか?
のようなものをSend
使用すると、ユーザーはプライベートメソッドにアクセスできますが、Rubyとアクセス修飾子に関するベストプラクティスは何でしょうか。言い換えれば、私は私のクラスでそれらを利用するべきですか?