問題タブ [private]
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:アクセス修飾子は「protected」よりも制限が厳しく、「private」よりも制限が少ないですか?
protected
フィールドを実装するクラスprotected
とそれをサブクラス化するものだけがアクセスできる、に似たものが必要です。
したがって、基本クラスの変数をとして宣言できるようにしたいのですがprivate
、それでもサブクラスから変数にアクセスできるようにしたいのです。
おそらく、これはサブクラス化、、、private
および/またはの性質そのものに反しprotected
ます。
このようなものはJavaに存在しますか?
java - プライベート最終静的属性とプライベート最終属性
Java では、次の違いは何ですか。
と
どちらもprivate
とfinal
で、違いはstatic
属性です。
何が良いですか?なぜ?
c++ - Doxygen がクラスのプライベート ブロックの後にパブリック ブロックで動作しない
(C++) クラスのプライベート セクションの後にパブリック セクションをドキュメント化するように Doxygen に指示するにはどうすればよいですか?
例えば
最初の公開セクションがなくても、2 番目の公開セクションはまだ文書化されていません。
doxylog.txt レポート:
警告: ドキュメント化された関数 `Brg:: undocumentedFunction1' は宣言または定義されていません
web - どのようにしてサイトをプライベートにしますか?
私はただ浮気して、Web開発の詳細を学び、表示する準備ができるまでドメインをプライベートにしたいのです。
これを行うための最良の方法は何ですか?
ところで、私はDebianにApacheサーバーを持っています。
interface - ATL / COM:DLLの外部では使用できないCOMインターフェイスを定義していますか?
VC++6.0を使用して作成されたATL/COMベースのDLLがあります。これは、VB6を使用して構築されたさまざまな実行可能ファイルに使用されます。
DLLの内部使用のみを目的として、VB6経由でアクセスできないCOMインターフェイスをいくつか追加したいと思います。(使用時に)COMインターフェイス参照しかないオブジェクトで使用するため、C++インターフェイスではなくCOMインターフェイスにします。
つまり、このポインタがCFooを指していることを(使用時に)知りません。私はそれがIFooを指していることを知っています。IFooはCOMインターフェイスであり、VB6がそれを認識できるように公開されています。このIFooポインターから、IFooを実装するすべてのクラス(CFooだけでなく)が実装するIFooInternalポインターを取得したいと思います。さらに、DLL自体の外部からIFooInternalにアクセスできるようにしたくありません。たとえば、VB6からIFooInternalにアクセスできるようにしたくありません。
これに関する助けをいただければ幸いです。同じ全体的な目標を達成するための代替方法の提案もあります。前もって感謝します。
c# - プライベート コードの単体テスト
私は現在 C# での開発に携わっています - ここにいくつかの背景があります: クライアント アプリケーションで MVP を実装し、5 を超える循環的複雑度を持つメソッドは存在しないという循環的規則があります。これにより、多くの小さなプライベート メソッドが発生します。これらは通常、1 つのことを担当します。
私の質問は、クラスの単体テストに関するものです。
パブリック メソッドを使用したプライベート実装のテストはすべて問題ありません...これを実装するのに問題はありません。
しかし...次の場合はどうでしょうか。
例 1.非同期データ取得リクエストの結果を処理します (コールバック メソッドは、純粋にテストのために公開するべきではありません)。
例 2.操作を行うイベント ハンドラー (ビュー ラベルのテキストの更新など - 私が知っているばかげた例...)
例 3.保護された仮想メソッドをオーバーライドして拡張できるサードパーティ フレームワークを使用しています (パブリック メソッドからこれらの仮想メソッドへのパスは、一般にブラック ボックス プログラミングとして扱われ、フレームワークが提供するあらゆる種類の依存関係があります。あなたは知りたくない)
上記の例は、設計が不十分な結果であるとは思えません。また、そのようなメソッドはコンテキストを失うため、分離してテストするために別のクラスに移動する候補にはなりません。
これについて考えている人はいますか?
乾杯、ジェイソン
編集: 元の質問では十分に明確ではなかったと思います-アクセサーを使用してプライベートメソッドをテストし、TypeMock を使用して呼び出し/メソッドをモックできます。それは問題ではありません。問題は、公開する必要がない、または公開できないものをテストすることです。
セキュリティの抜け穴を導入する可能性があるため、テストのためにコードを公開したくありません (これを非表示にするためのインターフェイスを公開することはオプションではありません。オブジェクトを元の型にキャストして戻すことができるため、私はしたくありません)
テストのために別のクラスにリファクタリングされるコードは問題ありませんが、コンテキストが失われる可能性があります。私はいつも、特定のコンテキストのないコードのポットを含むことができる「ヘルパー」クラスを持つのは悪い習慣だと思っていました - (ここでSRPを考えてください)。これがイベントハンドラーでも機能するとは本当に思いません。
私は間違っていることが証明されてうれしいです - この機能をテストする方法がわかりません! 私は常に、それが壊れたり変更されたりする可能性がある場合は、テストすることを心に留めていました.
乾杯、ジェイソン
c++ - C++ でオブジェクトを変換し、プライベート データ メンバーにアクセスできますか?
クラス内のプライベート データ メンバーにアクセスしたい。このクラスには、プライベート データ メンバーにアクセスするためのメンバー関数はありません。プライベートです。
私はクラスを取りたいと思っています。1 つの方法は、クラスの宣言をコピーし、private メンバーを public にして、新しいクラス class something_else を呼び出すことでした。次に、再解釈キャストを行い、元のオブジェクトをコピーします。これは機能します。しかし、私はもっとエレガントなものが欲しい...またはおそらく一般的な...または別の方法が必要です。
どのようなオプションがありますか? void* を使用できますか? クラスを別の空のクラスに memcpy できますか? これを行う方法は何ですか??
%
c++ - 他の人が使用するヘッダークラスファイル
ヘッダーファイル.hに保護されたものと公開されたものだけを配置し、コンパイルユニット.cppにすべてのプライベートなものを配置する方法があるかどうか知りたいのですが、ライブラリは他の人によって使用されるため、これが必要です。プライベート宣言と実装を削除するために、すべての.hファイルをコピーして編集する必要はありません。試しましたが、重複宣言エラーが発生しました
もう1つの質問は、プライベート静的なものについてです。ヘッダーファイルで宣言して、.cppユニットに実装できますか?プライベート変数とパブリックgetメソッドを試しましたが、ユニットにメソッドを実装できませんでした。ヘッダーの宣言と実装でのみ機能しました。
[] s、ジョー
mercurial - Google Code にプライベート Mercurial リポジトリをセットアップすることは可能ですか?
Google Code が Mercurial ホスティングの無料オプションであることは気に入っていますが、セットアップしたテスト プロジェクトでは、リポジトリをprivateとして指定する方法が見つかりませんでした。
理想的には、世界に公開する準備が整うまで非公開でプロジェクトに取り組み、それから他の人に公開したいと考えています。
Googleコードでそれを行う方法はありますか?
python - Pythonでのプライベートモジュール関数の定義
http://www.faqs.org/docs/diveintopython/fileinfo_private.htmlによると:
ほとんどの言語と同様に、Pythonにはプライベート要素の概念があります。
- モジュールの外部から呼び出すことができないプライベート関数
ただし、2つのファイルを定義すると、次のようになります。
と:
実行すると、例外なくb.py
出力されます。1
diveintopythonは間違っていますか、それとも私は何かを誤解しましたか?そして、モジュールの関数をプライベートとして定義する方法はありますか?