問題タブ [data-hiding]

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 投票する
4 に答える
436 参照

java - ミューテーターを非表示にし、説明が必要

あなたが持っているクラスを持っていると仮定しDogます

DogHandlerさらに、のインスタンスを作成してDog dに渡すクラスがありますOwner

私は、私ができると思います

...に渡す前に犬のコピーを作成しますが、これOwnerはコストのかかる操作であり、避けたいと思います。

Dog...ゲッターのみを含むを実装するインターフェースを考え出し、 Dogそのインターフェースにキャストして結果を渡します

...コンストラクターで設定可能な変数を初期化し、オブジェクトのこのインスタンスの変更を許可しない

オブジェクトの受信者がオブジェクトを変更できないようにする他の方法はありますか?

データを含む単純なBeanを取得して、読み取り専用にする方法を教えてください。

0 投票する
2 に答える
2122 参照

c++ - C++ での親子関係

以下の C++ コードを検討してください

オブジェクト B を含む (持つ) オブジェクト A があります。親は A で、子は B です。A に B をdoSomethingImportant()させたい場合、Aを B の友人として追加することが唯一の方法であることがわかります。それをするために。

friend class Aこれにより、A の関数が B のプライベート関数にアクセスできるようになります。

Data_Hiding の概念に抜け穴ができるため、このアプローチは少し奇妙に感じます。オブジェクト間の親子関係を確立するより良い方法はありますか? それともこれが最善の方法ですか?


この質問に対する私の実際の動機を追加する

0 投票する
4 に答える
2888 参照

c - C 構造体定義の非表示

これが私のセットアップです:

public.h:

struct.h で

func.h で:

func.c:

main.c で:

これらのファイルを GCC でコンパイルすると、次のエラーが発生します。

古いコンパイル エラー

宣言指定子の複数のストレージ クラス

編集後のコンパイル エラー

「*」トークンの前に「=」、「,」、「;」、「asm」、または「__attribute__」が必要です

誰かが私を助けてくれたり、なぜ私がこれを手に入れたのか、それを修正する方法を説明できますか?

0 投票する
2 に答える
10073 参照

oop - カプセル化、データの抽象化、データの非表示に関する正確な説明

オブジェクト指向の概念:、、encapsulationおよびdata abstractiondata hiding3つの異なる概念ですが、互いに非常に関連しています。そのため、インターネットから情報を読んで概念を完全に理解するのに苦労しています。ある場所で入手できる情報は、インターネット上の別の場所の情報と矛盾しています。誰かが私に3つの概念を明確に説明し、3つの違いを引き出すチュートリアルに案内してもらえますか?

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

android - Android-タブを押したときにRelativeLayoutを非表示にする

2つのタブ、詳細、添付ファイルを持つtabHostがあります。私がやりたいのは、[添付ファイル]タブを押したときに、RelativeLayoutにある情報を非表示にしたいということです。setVisibility(View.VISIBLE)を設定する必要があることはわかっていますが、このメソッドをそのタブに関連付けるにはどうすればよいですか?

タブを作成するための次のコードがあります。

誰か助けてくれませんか?

ありがとう。

0 投票する
0 に答える
152 参照

java - JUnit4でオブジェクトをテストするためのハンドル

特定のテストケースでは、テストケースの依存関係をオーバーライドして、サーブレットの要求や応答などの依存関係をさらに挿入する必要があります。

私のAPIはJSPをコンパイルして実行するために実際のサーブレットコンテナを必要とするため、これらをモックすることはできません。

JUnit 4を使用してテストインスタンスへのハンドルを取得するにはどうすればよいですか?

オーバーライドを試みましcreateTest()たが(これは機能します)、そのようなテストで使用されるランナーは内部にあり、階層に表示されないためBlockJUnit4Runner、同じ動作をテストに拡張することはできません。Parameterized

0 投票する
4 に答える
132 参照

c++ - 同じオブジェクトを使用して、関数内で C++ 関数を呼び出す必要がありますか?

例:

ここで、+ 演算子をオーバーロードして、2 つの従業員オブジェクトの年齢を追加するとします。これらの従業員オブジェクトの 1 つは、オーバーロードされたオペレーター関数を呼び出しますが、このインスタンスでは、そのオブジェクトも基本クラスから getAge() 関数を呼び出す必要があります。プライベートではなく年齢を保護できることはわかっていますが、そのプロパティを非公開のままにする方法はありますか?

0 投票する
19 に答える
75171 参照

java - カプセル化とデータ隠蔽 - Java

インタビュアー:カプセル化とは何ですか? Java ではどのようにカプセル化を実現していますか?

私: カプセル化は、クライアントから情報を隠すメカニズムです。情報は、データ、実装、またはアルゴリズムの場合があります。アクセス修飾子を使用してこれを実現します。

インタビュアー:これはデータ隠蔽です。Java でカプセル化を実現するにはどうすればよいですか?

: うーん

具体的な質問:「アクセス修飾子」以外に、Java でカプセル化を実装する方法は何ですか?

0 投票する
2 に答える
712 参照

c# - OOP でのカプセル化

私はOOPの概念について勉強しています。私が読んだドキュメントから理解したように、OOP でのカプセル化の概念のサンプル プログラムを作成しました。以下にコードを貼り付けました。カプセル化に関する私の概念は正しいですか?

デフォルト.aspx

Default.aspx.cs

クラス社員

私の主な疑問は、従業員で ShowDetails() メソッドを呼び出した方法についてです。これはメソッド ShowDetails() を非表示にする良い方法ですか?.