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

真的不清楚你想在这里做什么。(例如,为什么不add采用两个参数?)

也许你喜欢这样的事情:

// 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 回答
0

试试这个,

对 mathmain 类使用两个参数构造函数...

public mathmain(int x, int y){

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


}

请使用大写字母作为类名的第一个字母(例如:MathMain),

是的,使用 Camel Case 在 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 回答