問題タブ [private-methods]

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

c# - コンストラクターによってのみ呼び出されるプライベート メソッドで readonly 変数の値を割り当てる

C# コンパイラで次のエラーが発生しました

CS0191: 読み取り専用フィールドを割り当てることはできません (コンストラクターまたは変数初期化子を除く)

(プライベート関数内の) コードをコンストラクターに移動する必要がありますか? ぎこちないですね。

プライベート メソッドは、コンストラクターによってのみ呼び出されることを意図していたことに注意してください。対応するメソッドをマークするために使用できる何らかの属性があると思います。

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

xcode - Obj-C プライベート メソッド コンパイラの警告

プライベート メソッドは、クラスの境界内でコードを整理しておくのに便利な構造です。例としては、カスタム UIView サブクラスでの長く巻き上げられた Quartz 2d 命令の構成があります。「.h」で宣言せずに「.m」ファイルにそのようなメソッドを含めることができます。UIView サブクラス '.m' ファイルの実際の例は次のとおりです。

私の問題は、プライベート関数を呼び出す行でコンパイラが「インスタンスメソッド '-DoSomethingPrivate' が見つかりません (戻り値の型のデフォルトは 'id')」という警告を生成することです。この質問への回答から、「名前なし」インターフェイス カテゴリを使用してプライベート メソッド宣言を「非表示」にできることを認識しています。

ただし、Apple のサンプル コードSimpleStocks、ファイル " SimpleStockView.m " を確認すると、名前のないカテゴリ インターフェイスで宣言されておらず、コンパイラの警告も生成されないプライベート関数が含まれています。

Apple のサンプル コードのプライベート メソッドがどのようにコンパイラ チェックを回避しているように見えるかについて、誰かが光を当ててくれるとありがたいです。

どうもありがとう。

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

javascript - Javascript プライベート メソッド

Apres Javascript Pro テクニックの第 2 章、特にProvate Methodsに関するセクションを読んでいました。

例として、次のコード スニペットを示します。

4 行目のエラーは別として、新しい Classroom オブジェクトを作成すると、

次のエラーがスローされます。

douglas.crockford.com/private.html を読んで、これを見つけました。

慣例により、その変数をプライベートにします。これは、オブジェクトをプライベート メソッドで使用できるようにするために使用されます。これは、ECMAScript 言語仕様のエラーの回避策であり、内部関数に対してこれが正しく設定されません。

実際、thisを指すthat変数を作成すると、前のコードは期待どおりに機能します。

だから私の質問は:

  • その変数を作成することは常に必要ですか?

はいの場合、これは例が決定的に間違っていたことを意味します。

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

objective-c - Mac App Storeではプライベートメソッドのサブクラス化が許可されていますか?

MacAppStoreのガイドラインには次のように記載されています。

非公開APIを使用するアプリは拒否されます

これには、クラスの参照に記載されていないメソッドを使用してパブリックオブジェクトをサブクラス化することも含まれますか?

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

objective-c - ObjCで、サブクラスのスーパークラスのメソッドの実装を非表示にするにはどうすればよいですか?

ObjCで、サブクラスのスーパークラスのメソッドの実装を非表示にするにはどうすればよいですか?

@privateがこのトリックを実行するかどうかはわかりません。これは、ivarにのみ適用されるように見えるためです。

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

java - Java でプライベート メソッドを使用する方法

setCoors(int x, int y) というプライベート メソッドを持つクラスが与えられます。そのクラスのコンストラクターにも setCoors があります。別のクラスでは、setCoors を呼び出すメソッド setLocation が必要です。これは可能ですか?

新しい質問:

メソッドをパブリックに設定することが許可されていない場合、これは可能ですか?

0 投票する
7 に答える
75011 参照

java - パブリックメソッドよりもプライベートメソッド

StringTokenizer.java私はクラスを調べていて、頭に浮かんだいくつかの質問がありました。

他のクラスで使用されるパブリックメソッドが、すべての作業を実行するプライベートメソッドを呼び出すことに気づきました。さて、OODの原則の1つは、できる限り多くのことを非公開にし、実装の詳細をすべて隠すことであることを私は知っています。しかし、この背後にある論理を完全に理解しているのかどうかはわかりません。

無効な値がフィールドに格納されないように、フィールドをプライベートにすることが重要であることを理解しています(多くの理由の1つにすぎません)。ただし、プライベートメソッドに関しては、なぜそれらが重要なのかわかりません。

たとえば、StringTokenizerクラスの場合、すべての実装コードをパブリックメソッド内に配置するだけでは不十分でしょうか。これらのメソッドのAPI(つまり、これらのパブリックメソッドを呼び出すルール)は同じままであるため、これらのメソッドを使用するクラスにどのような違いがありますか?プライベートメソッドが役立つ理由を私が考えることができる唯一の理由は、重複したコードを書くのを助けるからです。たとえば、すべてのパブリックメソッドが同じことを行った場合、このタスクを実行し、パブリックメソッドで使用できるプライベートメソッドを宣言できます。

他の質問、パブリックメソッドではなくプライベートメソッドで実装を書くことの利点は何ですか?

ここに小さな例があります:

対...

最初のサンプルはどのように有益ですか?

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

java - 特定のパラメーターに対して True を返すプライベート メソッドを作成する方法は?

したがって、正確な言い回しは、「指定された評価が有効である場合に true を返すプライベート メソッド isValid(aRating) を記述します。これは 1 から 10 の間です。」

指定された評価が有効である場合に真の値を返すために上記のメソッドで実行されること。有効性は 1 ~ 10 の数値を意味します。

これは私が試みたものであり、インストラクターはそれを「適切な方法」で望んでいます。これは私が試みたことのほんの一例です。完全に別のプログラムです。(紛らわしい場合は無視してください)。

これは正しいでしょうか

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

java - パブリックメソッドでプライベートメソッドを使用して有効性を確認するにはどうすればよいですか?

次に、有効な場合に評価をaRatingに設定するメソッドsetRating(aRating)を作成する必要があります。したがって、パブリックメソッドで上記のメソッドを使用して、それが有効かどうかを確認する必要があると想定しています。有効な場合は、rating=をaRatingに設定する必要があります。これまでのところ、私の考えは次のとおりです。

ただし、isValidはメソッドであるため、trueとして==として使用することはできません。isValid();も使用してみます。メソッドを試して使用するためですが、上部に(int aRating)があるため、許可されません。私が識別子を持っていない場合、それは私がaRatingを使用することをまったく許可しません...

今では

ユーザーがキーボードから何かを入力できるようにするsetRating()メソッドを作成する必要がありますが、これも有効である必要があります。SetRating(int aRating)を2回オーバーロードできないと表示されるため、エラーが発生し続けます。しかし、int部分を取り出そうとすると、パラメーターが必要なため無効になります。これは私が持っているものです

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

c++ - 単一のプライベート メンバーへのクラス アクセスを許可する

a() というプライベート メソッドを持つクラス A があります。a() にアクセスする必要があるクラス B もあります (ただし、B だけが a() にアクセスできる必要があるため、a() はプライベートです)。フレンド指定子を使用できるようになりましたが、それにより、A の他のプライベート メソッド (b() および c() と呼びましょう) も B で使用できるようになり、その動作は望ましくありません。

A の a() だけを B にアクセス可能にする方法はありますか?