問題タブ [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 に答える
1112 参照

ruby - 送信により、プライベート変数へのアクセスが許可されます

次のコードを検討してください。

私がした後:

以下は大丈夫です:

でも、これ:

結果は次のようになります。

?私には意味がありません...「送信」はRubyのアクセスチェックを上書きできますか?助けてください!

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

ruby-on-rails - エラー: プライベート メソッドを呼び出そうとしています

C スタイルの構文の長い歴史から来て、Ruby (on Rails) を学ぼうとしている私は、そのイディオムなどに問題を抱えていましたが、今日、問題があるとは思っていなかったものにぶつかりました。目の前にあるに違いないものが何なのか見えない。

パス値から URI 値を導出するプライベート メソッドを含む Binary クラスがあります (uri とパスはクラスの属性です)。self.get_uri_from_path()内から呼び出していますBinary.upload()が、次のようになります。

モデルのスニペットは次のようになります。

間違って電話をかけていますか? さらに基本的な何かが欠けていますか?から呼び出されている唯一の場所Binary.get_uri_from_path()は、現時点ではBinary.upload()です。Ruby が私が使用した他の言語と著しく異なることをしない限り、同じクラス内からプライベート メソッドを呼び出すことができると期待しています。

ありがとう。

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

jquery - 特異性を重ねる方法

http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/の投稿内

「特異性」のルールを定義する文脈では、次のように述べられています。

たとえば、ブログの投稿であるすべての div 要素の背景色を変更する場合は、class 属性が「post-」で始まるすべての div を対象とする属性セレクターを使用できます。

これは、class 属性に「posts」という単語が含まれるすべての div 要素に、任意の位置で一致します。

...

私の質問は、上記の例を次のように拡張することです。

** ...ブログの投稿であるすべての div 要素の背景色を変更します。ただし、anon ユーザーによる投稿は次のようになります... **

【何に似てる?】

どうも

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

ruby - 「プライベート」がRubyのように機能する正当な理由はありますか?

Ruby でプライベートメソッドがどのように機能するかを理解するのにしばらく時間がかかりました。プライベートメソッドをそのまま処理する正当な理由があるかどうかは誰にもわかりませんか? 歴史的な理由だけですか?それとも実装理由?それとも、確かな論理的理由 (意味論的理由) がありますか?

例えば:

  • 行 (1)、(2)、および (5) での Ruby の動作は妥当に見えます。
  • (6) が問題ないという事実は、特に Java と C++ から来ると、少し奇妙です。これには正当な理由がありますか?
  • (3) が失敗する理由がよくわかりません。説明、誰か?
  • (4) 行の問題は、'private' とは関係のない文法の曖昧さのように見えます。

何か案は?

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

ruby - Rubyでクラスコンストラクタをプライベートにする方法は?

まったく機能しません

では、正しい方法は何ですか?newプライベートにして、ファクトリメソッドで呼び出したいです。

0 投票する
8 に答える
21635 参照

java - Javaで継承されたメソッドへのアクセスを非表示または低くすることは可能ですか?

基本クラスの一部のメソッドに、基本クラスから直接派生したクラスからアクセスできるようにしたいが、派生クラスから派生したクラスからはアクセスできないようにするクラス構造があります。Java言語仕様によれば、継承されたメソッドのアクセス仕様をオーバーライドして、それらをよりパブリックにすることは可能ですが、プライベートにすることはできません。たとえば、これは私がしなければならないことの要点ですが、違法です。

これを達成する方法はありますか?

私がこれをしたい理由を説明するために編集されました:

この場合、クラス構造はデータ処理およびインポート構造です。表形式のデータでいっぱいのテキストファイルを読み込んで解析し、データベースに保存します。

基本クラスは、その一部を処理するデータベースを管理する基本テーブルクラスです。すべてのテーブルタイプに共通するかなりの量の機能が含まれています。データベースに入ると、それらは統一されます。

中間クラスは、解析されるファイル内のテーブルの種類に固有であり、テーブルの解析およびインポートロジックを備えています。基本クラスのデータベースアクセス関数の一部にアクセスする必要があります。

トップレベルクラスはテーブルに固有であり、親クラスが理解できる方法でテーブルのレイアウトを初期化するだけです。また、基本クラスのユーザーは、中間クラスが実行するデータベース固有の機能を表示したり、アクセスしたりする必要はありません。本質的に、私はこれらの関数を基本クラスの1つ上のレベルにのみ公開し、他の誰にも公開したくないのです。

私が例として投稿したコードは違法ですが、同じ目的を達成するための他の手段があるかもしれないので、私は尋ねます。あるかどうか聞いています。

おそらく、隠すことはこれを表現する間違った方法です-私が本当にする必要があるのは、基本クラスにプライベートであるはずのいくつかの機能を、階層の1つ上のレベルのクラスに公開することです。非表示にすることでこれを実現できますが、非表示がどのように問題になるかはわかります。これを行う別の方法はありますか?

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

java - プライベート javax.swing.JTextField3; エラー

すべての括弧を修正した後、私の質問「メインメソッドが見つかりませんエラー」に返信してくれたことに感謝します。コードは問題ないようです.IDEでは、まだ以下のエラーを示しています。

つまり、上記の唯一のエラー行を示すビルドに失敗したため、これらは IDE による変数宣言であり、変更できません。

主なコードは次のとおりです。

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

c++ - 派生クラスがプライベート/保護された仮想関数をパブリックにしないようにする方法は?

すべての仮想関数をプライベートまたはプロテクトとして基底クラス インターフェイスを構築するのには十分な理由があります (これを参照してください)。しかし、派生クラス (外部クライアントの手に渡っている可能性があります) がプライベート仮想関数をパブリックとして作成するのをどのように防ぐのでしょうか? Virtually Yoursでは、著者はこの問題について語っていますが、解決策については議論されていません。

編集:あなたの答えから、私が以前に考えたように、これを防ぐ方法はないようです。しかし、この状況では失敗しやすい (クライアントが保護された仮想関数に確実にアクセスする) ため、コンパイラがそのような使用法について警告するのは理にかなっています。g++でテストしてみました。まず、次のように書きました。

g++ -c -Wall -pedantic file.cppエラーなしでコンパイルされました。追加-Weffc++すると警告が表示されました: warning: ‘class A’ has virtual functions and accessible non-virtual destructor、これは理にかなっています。仮想デストラクタを追加した後、警告はありません。したがって、この間違いやすいケースには警告はありません。

0 投票する
5 に答える
81459 参照

c++ - C++ のプライベート仮想メソッド

C++でプライベートメソッドを仮想化する利点は何ですか?

オープンソースの C++ プロジェクトでこれに気づきました。

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

ruby - 実行時にインスタンス メソッドを非公開にする

そのオブジェクトを別のオブジェクトに登録した後、いくつかのインスタンス メソッドをプライベートにする必要があります。

オブジェクトをフリーズしたくありません。編集可能なままにしておく必要があり、機能が少ないだけだからです。また、メソッドは内部で使用されるため、メソッドを未定義にしたくありません。

私が必要とするのは次のようなものです:

何か案は?