2

私はJava言語の初心者で、「テキストパッド」を使用しています。単純なプログラムに問題があります。私の仕事は、2つの値を入力し、「合計」、「差」、「積」、「商」をすべて表示することです。(単純な権利ですか?)ここで、以下は算術の仕事をしているはずのクラスです。私がコンパイルしたように、これは「正しい」です。

public class mathclass
{

    int x;
    int y;
    int total;


    void add ()
    {
        total = x+y;
    }

    void sub ()
    {
        total = x-y;
    }

    void multi ()
    {
        total = x*y;
    }

    void div ()
    {
        total = x/y;
    }

}

そして、これがプログラムの入力と出力であるはずのメインプログラムです。ここでの私の問題は、2つの変数(num1とnum2)を「mathclass」に渡すことができないことです。2つの変数を別のクラスに渡す方法を調査しました。しかし、私が持っているものと同じものは何もありません。私は変数に「プライベートまたはパブリック」を置くようなものを使用しました。私の先生は、入力にBufferedReaderを使用すると言いました。そして私はこのプログラムを正しくする方法に苦労しています。(英語が間違っていたらごめんなさい(間違っていたら))

import java.io.*;
public class mathmain
{

    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[]args)throws IOException
    {


        mathclass math1 = new mathclass();

        System.out.print("Enter 1st Number :");
        num1 = Integer.parseInt(br.readLine());
        System.out.println(" ");

        System.out.print("Enter 2nd Number :");
        num2 = Integer.parseInt(br.readLine());
        System.out.println(" ");

        System.out.println(" ");
        System.out.println(" ");
        System.out.println(" ");

        math1.add();
        {
            System.out.print("Sum : ");
            System.out.println(math1.total);
        }
        System.out.println(" ");
        math1.sub();
        {
            System.out.print("Difference : ");
            System.out.println(math1.total);
        }
        System.out.println(" ");

        math1.multi();
        {
            System.out.print("Product : ");
            System.out.println(math1.total);
        }
        System.out.println(" ");
        math1.div();
        {
            System.out.print("Quotient : ");
            System.out.println(math1.total);
        }
    }
}
4

4 に答える 4

0

これを試して、

mathmainクラスには2つのパラメーターコンストラクターを使用します。

public mathmain(int x, int y){

this.x = x;
this.y = y;


}

クラス名の最初のアルファベットには大文字を使用してください(例:MathMain)、

はい、Javaでクラス、変数、メソッドなどの名前を記述するためにキャメルケースを使用します。

于 2012-06-21T13:33:40.627 に答える
0

あなたが始めているので、私は設計上の欠陥を指摘しません。問題は、読み取り値をどのように使用しているかに起因します。値をnum1とnum2に読み込みますが、mathclassオブジェクトに設定することはありません
math1.x = num1;
math1.y = num2;
。aioobeが言ったように、堅牢で便利なクラスを作成するのに役立つJavaデザインルールを確認する必要があります。また、クラスをカプセル化し、可能な場合は常にパラメーター戻り値を使用することをお勧めします。

Javaの学習に頑張ってください。これがお役に立てば幸いです!

于 2012-06-21T13:34:12.993 に答える
0

ここで何をしようとしているのかははっきりしていません。add(たとえば、2 つの引数を取らないのはなぜですか?)

おそらく、次のような後です。

// Set up arguments
math1.x = num1;
math1.y = num2;

// Perform the add.
math1.add();
// {                <-- brace completely useless.

// Print the result
System.out.print("Sum : ");
System.out.println(math1.total);
// }                <-- brace completely useless.

ただし、戻り値パラメーターを使用することをお勧めします。

class MathClass {

    public int add(int a, int b) {
        return a + b;
    }

    ...
}

そして、次のようなクラスを使用します

int sum = math1.add(num1, num2);

System.out.println("Sum: " + sum);
于 2012-06-21T13:24:19.443 に答える
0

間違った方向に進んでいるので、Java でコーディングする方法を検討する必要があります。

x & y を初期化するコンストラクタを作成するか、メソッド add(x,y) に配置して、メソッドを静的にし、クラスから x & y の参照を削除します。関数の戻り値となる合計についても同じことが言えます。

于 2012-06-21T13:26:48.183 に答える