0

こんにちは、ここで少し問題があります。別のクラスで生成された乱数を呼び出して、2番目のクラス(jform)のjlabelを介して表示しようとしていますが、ちょっと迷っています。生成する数は2倍です。コード

GaussianGenerator num = new GaussianGenerator();//calling another class
CriminalDetails() 
{
    initComponents();
    double number = 0;
    num.GaussianGenerator(number);
    CriminalID.setText(Double.toString(number));//CriminalID jfield
}

jfieldで取得する数値は「doublenumber」で初期化された0ですが、GaussianGeneratorクラスで生成された数値を取得したいと思います。ご覧いただきありがとうございます。ありがとうございました。

4

1 に答える 1

1

numは、数値ジェネレーターのインスタンスです。数値ジェネレータオブジェクトのインスタンスでメソッドを呼び出し、それを数値に割り当てることによって、数値の値を設定する必要があります。このように(私はあなたの他のクラスに精通していません):

GaussianGenerator num = new GaussianGenerator();//calling another class
CriminalDetails() 
{
    initComponents();
    double number = 0;
    number = num.getNextValue();
    CriminalID.setText(Double.toString(number));//CriminalID jfield
}

または、GaussianGeneratorはメソッドの名前でもありますか?デザインの観点からは悪い考えです。これをパラメータとしてメソッドに渡すのではなく、メソッドは生成された値を返すだけです。

numer = num.GaussianGenerator();

Javaでは、それがあなたがやろうとしていることである場合、参照によってプリミティブを渡すことはできません。オブジェクト(例:Double)でこれを行うことはできますが、Doubleで十分なので、これは悪い設計です。また、メソッドに適切な名前を付けて大文字にする方法を学ぶことができるように、Javaコーディング規則に関する優れたチュートリアルを読む必要があります。したがって、これがより良いコーディングであることがわかります。

number = num.getNextValue();
于 2013-01-12T00:15:16.543 に答える