1

2 つのクラスを持つ単純なプログラムを作成しようとしています。1 つのクラス (main メソッドを使用) ですべての入力と出力を処理し、もう 1 つのクラスですべての数学を処理してから、計算を main メソッドに返すようにします。メイン メソッドから数学クラスのオブジェクトに変数を正常に渡すことができ、そのメソッドの結果を println でテストしましたが、完成した計算をメイン メソッドに戻すことができないようです。これが私のコードです。理解してください。どうもありがとうございます main メソッドを使用したクラスは次のとおりです

import java.util.Scanner;


public class io {
    public static void main (String[] args){
        Scanner chargeTankStartGaugeFeetInput = new Scanner(System.in);
        Scanner chargeTankStartGaugeInchesInput = new Scanner(System.in);
        System.out.println("What is the charge tank's start gauge feet: ");

        String chargeTankStartGaugeFeet = chargeTankStartGaugeFeetInput.nextLine();
        System.out.println("What is the charge tank's start gauge inches: ");

        String chargeTankStartGaugeInches = chargeTankStartGaugeInchesInput.nextLine();

        math mathObject = new math();
        mathObject.changeGaugesToInches(chargeTankStartGaugeFeet, 
                                        chargeTankStartGaugeInches);
        System.out.println(mathObject.totalInches(totalInches) 
                           + " is total inches in io");     
    }
}

メイン メソッドの「totalInches」を変数に解決できないというエラーが表示されます。これがどのように機能するかについて、私の考えは近いですか?

そして数学の授業はこちら

public class math {
    public void changeGaugesToInches(String arg1, String arg2) {
        double arg1Double = Double.valueOf(arg1).doubleValue();
        double arg2Double = Double.valueOf(arg2).doubleValue();

        double totalInches = arg1Double * 12 + arg2Double;

        System.out.println(totalInches + " is the total inches");
    }
}
4

3 に答える 3

0

どの void メソッドも戻り値を持つことはできません。public void changeGaugesToInches(String arg1, String arg2)は void メソッドであるため、戻り値の型はありません。

静的にすると、数学 mathObject = new math();を使用できなくなります。

于 2015-04-08T07:29:42.963 に答える
0

まず、慣例により、Java のすべてのクラス名と列挙型名は大文字で始める必要があります。第 2 に、数学クラスにもっとわかりやすい名前を付けたいと思うかもしれUnitsConverterません。

では、とをとにchangeGaugesToInches名前変更する必要があります。arg1arg2feetinches

最も重要なことは、結果を返すようにメソッドを変更し、それをメイン メソッドの変数に割り当てる必要があることです。

double totalInches = mathObject.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches);

public double changeGaugesToInches(String arg1, String arg2){
    //...
    return totalInches;  
}

このメソッドはインスタンス変数を使用しないため、サブクラスでこのメソッドをオーバーライドする可能性があると思われる場合 (たとえば、メトリック単位を追加する場合) を除き、静的として宣言した方がコードはより効率的になります。また、より正確さが必要でない限り、おそらく整数を使用できます。

double totalInches = UnitsConverter.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches);

public static int changeGaugesToInches(String feet, String inches){
    return changeGaugesToInches( Integer.parseInt(feet), Integer.parseInt(inches) );
}

// this method can be used more efficiently from parts of your app that already have the units as integers.
public static int changeGaugesToInches(int feet, int in
    //...
    return totalInches;  
}
于 2012-08-26T22:51:08.170 に答える
0

メソッドから値を返すことができます...

public double changeGaugesToInches(...)
{
  ....
  return totalIncehs;
}
于 2012-08-26T22:51:18.700 に答える