問題タブ [non-static]

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 に答える
640 参照

java - static synchronised method vs non static synchronised method

I have a class

I have 2 objects Foo.get() and f.getMore() running in 2 different threads t1 and t2. i had a dobuts whether when thread t1 had got a lock on the class can thread t2 access the method getMore or would t2 be prevented from getting the access and the lock to the method since the class object is locked by t1.

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

java - 静的メンバーは非静的メンバーとは別のものですか?

だから私はこのクラスを得ました:

LoadModel メソッドは Model オブジェクトに影響しますか? LoadModel メソッドはまだ完了していません。

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

java - 非静的メソッドは静的コンテキストから参照できません

重複の可能性:
Java の静的メソッドで非静的メソッドを呼び出す

メイン関数から既に定義されているオブジェクトを含むメソッドを呼び出そうとすると、「非静的メソッドは静的コンテキストから参照できません」というエラーが発生します。

Person クラス、Book クラス、および main メソッドを含む 3 番目のクラスの 3 つのクラスがあります。

ここで、main() 内に 4 つの Person インスタンスを作成し、4 人の Person に本が欲しいかどうかを尋ねるメソッド「doesAnybodyWantIt(Book b)」を定義するように求められました。次のようになります。doesAnybodyWantIt(Book b){ me.doIwantIt(b); lisa.doIwantIt(b).. with the four person-objects).

私が恐れていたように、javac は 4 つの Person オブジェクトが存在することを認識せず、エラーを発生させます。代わりに、メソッドを doesAnybodyWantIt(Book b, Person a, ... ) のように記述できることはわかっていますが、これは求められていることではありません。

だから私の質問は: Persons をパラメーターとしてdoesAnybodyWantIt-method に渡すことなく、この問題を回避する方法はありますか? Person me = new Person(..)コンストラクター メソッドに含めようとしましたが、うまくいきませんでした。

このタイプのセットアップでは、定義することがわかっているオブジェクトに対して特定の処理を実行したい場合、エラーを回避するにはどうすればよいですか?

元のソース コードを含めるべきかどうかはわかりません。すべてのメソッドとパラメーターにはノルウェー語の名前が付けられているため、あまり読みにくいと思います。

本当にありがとうございました!マリウス

返信ありがとうございます。あなたはもちろん正しいです、私はこの厄介な質問にいくつかのコードを含める必要があります.

人には名前と興味のある分野があり、本にはカテゴリがあります。この課題では、main で作成された 4 つの特定の Person オブジェクトをループするメソッド vilNoenHaBoka (= doesAnybodyWantTheBook) を作成し、それぞれに本が必要かどうかを尋ねる必要があると述べています。また、メソッドは public void vilNoenHaBoka(Bok b) のように見える必要があるとも述べています。さて、この明らかに課題に関連した質問をするのは本当に申し訳ありません。これが不適切である場合はお知らせください。ただし、一般的にこのような問題に対処するための良い方法は何かを知りたいだけです-たとえば、Person-objects を vilNoenHaBoka() に渡す必要がありますか?

再度、感謝します!

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

java - (別) 「非静的メソッドは静的コンテキストから参照できません」問題

エラー: 非静的メソッドは静的コンテキストから参照できません。

私の場合、メソッドは readFile() と呼ばれます。

やあ。無数の初心者プログラマーが以前に経験したのと同じエラーを経験していますが、それについて何時間も読んだにもかかわらず、その知識を自分の状況に適用する方法がわかりません。

コードを再構築する必要があるかもしれないと思うので、クラスの全文を含めます。

main() メソッドを小さな Main クラスに格納したいのですが、簡単にするためにここでは同じクラスに配置しました。どこに置いても同じエラーが発生します。

readFile() メソッドは main() メソッド内に簡単に配置できますが、このような小さなモジュラー メソッドを作成して main() メソッドから呼び出す方法を学びたいと思います。もともと closeFile() も別のメソッドでした。

プログラムは次のことを想定しています。

  1. .dat ファイルを開く
  2. 検査結果に関するデータをファイルから読み込む
  3. 情報に対して計算を実行する
  4. 計算結果を出力する

ファイルの各行は、個々の学生に関する情報です。
シングルは 3 つの試験問題で構成されます。
ほとんどの計算は個々の生徒に関するものです。
しかし、一部の計算では、生徒のコレクション全体 (つまり、クラス) が考慮されます。

注:コード内で「クラス」という言葉が使用されている場合、OO プログラミングの意味でのクラスではなく、学生のアカデミック クラスを指します。

問題を解決するためにさまざまな方法を試しました。

現在のアプローチは、単一の学生試験に関するデータをクラス「試験」のインスタンスに格納することです。
これは、入力ファイルの 1 行と、そのインスタンスのみの他の属性に関する後続の計算に対応します。

これらの属性には、readFile() の while ループ中に値が入力されます。
while ループが終了すると、Exam のコレクション全体 (つまり、アカデミック クラス全体) に関係する 3 つの計算が呼び出されます。

2 つ目の質問は次のとおりです。
「Declare Attributes」というコメントの下で、クラスの属性を 2 つのサブグループに分けました
。クラス変数として (キーワード static を使用して) 定義する必要があると思われるものです。
私が思うものは、インスタンス変数として定義する必要があります。
最初のグループにキーワード static を追加する必要があるかどうかを教えてください。

関連する質問は次のとおりです。
インスタンスのコレクション全体を使用して計算を実行するメソッドも、静的/クラス メソッドとして宣言する必要がありますか?
私がそれを試みたとき、これらがインスタンスメソッドを呼び出そうとしたときに同様のエラーが発生しました。

ありがとう。

PS: このフォーラムについて:
コードをコード ブロックで囲みましたが、Java 構文は強調表示されていません。
投稿したら変わるかもしれません。しかし、そうでない場合は、誰かが方法を教えてくれれば喜んで再フォーマットします。

PPS: これは宿題です。
以下のすべてのコードを自分で作成しました。
「宿題」タグは廃止されたので使用しませんでした。


入力ファイル名: "results.dat"
入力ファイルのパス: "C:/Users/ADMIN/Desktop/A1P3E1 Files/results.dat"
入力ファイルの内容 (ランダムに生成されたデータ):


Java ファイル名: "Exam.java"
Java パッケージ名: "a1p3e1"
Java プロジェクト名: "A1P3E1"
Java ファイルの内容:

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

java - メインクラスから関数に配列を渡すことと、「ゲッター」メソッドからの戻り値を使用することの間の競合

私のメインクラスには、配列を渡す静的メソッドがあります。メインクラス本体からこのメソッドに何かを渡したい場合、それは静的でなければならないため、これは静的メソッドです。別のクラスには、一連のゲッターとセッターがあります (非 static である必要があります)。

静的配列を渡し、非静的ゲッターとセッターを使用するにはどうすればよいですか?

編集 - arraySearch メソッドで... Person Array を渡して、Person クラスのゲッターにアクセスすることはできません

パブリック クラス メイン {

}

パブリック クラス Person {

}

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

java - スキャナーを静的から非静的に渡し、float java を返す

スキャナーが読み取ったテキスト ファイルから静的なメイン メソッドから非静的メソッドにスキャナーを渡し、フロートを返す必要があるプロジェクトに取り組んでいます。これまでのところ、私は持っています:

次に、私の計算メソッドでは、その宣言は、public float calculate(Scanner s){同様の質問が何度も尋ねられていることを知っているだけですが、それを取得していません。私を失望させているのは、ノードのように作成される新しいオブジェクトがないことです。ありがとうございました。

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

forms - 静的および非静的メソッドまたはグローバル クラス オブジェクト

VS2012 C++ で Windows フォーム アプリケーションを作成しています。たとえば、実際のプロジェクトはもっと複雑です。TextBox、Button、Timer を含む Form があります。ボタンはタイマーをトリガーするだけです。タイマーは、変数をインクリメントする関数を呼び出すだけです。インクリメントされる関数の変数を TextBox に表示する必要があります。

Form1.h にコードを追加します。

My_app.cpp コードでは次のようになります。

関数 Timer_Func() は、次のように「resource.h」で指定されます。

つまり、Timer_Func() の内部変数 I の現在の状態を Form1 パブリック メソッド Set_Text() に渡すことによって表示しようとしています。そう。ここでのエラーは、Set_Text() が静的メソッドではないことです。静的にしようとしたのですが、「С2227: The operand to the left of "->Text" is not a pointer to a class, structure, or union.」というエラーが出ました。それを正しくする方法は?その場合、静的メソッドは非静的メソッドを実装しようとしていますよね?

または別の方法: Form1 のインスタンスを作成する - 代わりに

コードを挿入

また、クラス インスタンス My_form の非静的メソッドとして Set_Text を使用します。ただし、My_form は main() でのみ使用できます。My_form は他では作れませんでした。それをグローバルにする方法はありますか?

この問題を解決する他の方法があるかもしれませんか?

助けてください!すでにいくつかのフォーラムで回答を検索しましたが、回答が見つかりませんでした。より正確には、それらのどれも適していません。PS私の悪い英語でごめんなさい!^_^

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

c++ - クラス外の非静的データメンバーにアクセスする

クラス外の非静的データメンバーにアクセスすることは可能ですか?次のような例があるとします。例としてはあまり意味がないことは知っていますが、静的でないデータメンバーにアクセスする方法を理解したいだけです。以下をコンパイルすると、エラーが発生します。

// Ch

//C.cpp

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

c# - 非静的クラスを静的として宣言する

私はと呼ばれる静的クラスを持っていますA:

Bそして、静的ではないと呼ばれる別のクラス:

その後、非静的クラスBを静的として宣言しました。

A(静的クラス) とb(静的クラスとして宣言された非静的クラス)の違いは何ですか?

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

java - リフレクションによる非静的メソッドの呼び出しに関する問題 (Java)

リフレクションによる非静的メソッドの呼び出しに問題があります。私のコードは以下です。「ClassnameRemoved.printMessageToLogger(Level.INFO, "Test");」を実行しようとすると、「クラス Logger でメソッド 'log' が見つかりませんでした。これは通常の Java クラスなので、おそらく変更された / outdata Java バージョン。". 前もって感謝します!