JAVA需要帮助OOP

时间:2014-04-13 20:56:41

标签: java oop

我需要创建一个面向对象的C-F转换器程序。我需要有两种方法将c转换为f,f转换为c。该方法应具有返回类型和一个参数。这就是我所拥有的,并且在编译时我遇到了一堆错误。任何人都可以帮我找出我做错了什么吗?非常感谢:)。

import java.io.*;

class Celsius {

    private int value, convertedValue;

    int setValue(int c) {
        value = c;
        convertedValue = (int) ((9.0 / 5.0) * value + 32);
    }

    int getValue() {
        return value;
    }

    int getConvertedValue() {
        return convertedValue;
    }
}

class Fahrenheit {

    private int value, convertedValue;

    int setValue(int f) {
        value = f;
        convertedValue = (int) ((9.0 / 5.0) * value - 32);
    }

    int getValue() {
        return value;
    }

    int getConvertedValue() {
        return convertedValue;
    }
}

class FCconvert {

    public static void main(String [] args) throws IOException {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader stdin = new BufferedReader(inStream);
        String inData, choice1, choice2;
        int input, c, f;
        choice1 = "cel";
        choice2 = "fah";

        System.out.println("Please choose Celsius or Fahrenheit (c for celcius and f for fahrenheit)");
        inData = stdin.readLine();

        if (/*choice1 equals inData*/) {
            System.out.println("Enter a value.");
            inData = stdin.readLine();
            c = Integer.parseInt(inData);
            Celsius cel = new Celsius();
            cel.setValue(c);
            System.out.println("The converted value is: " + cel.getConvertedValue());
        }

        if (/*choice2 equals inData*/) {
            System.out.println("Enter a value.");
            inData = stdin.readLine();
            f = Integer.parseInt(inData);
            Fahrenheit fah = new Fahrenheit();
            fah.setvalue(f);
            System.out.println("The converted value is: " + fah.getConvertedValue());
        }
    }
}

2 个答案:

答案 0 :(得分:1)

if (inData.equals("c"))
{
    System.out.println("Enter a value.");
    inData = stdin.readLine ( );
    c = Integer.parseInt (inData);
    Celsius cel = new Celsius();
    cel.setValue(c);
    System.out.println("The converted value is: " + c.getConvertedValue());
}

在使用这些方法之前,您需要实际创建Celsius类的对象。类似于fahrenheit类。话虽如此,请重新考虑您的课程设计。

还要注意字符串比较方式的变化。

答案 1 :(得分:0)

在if语句中添加Celsius对象的创建,如下所示:

if ('c' == inData)
{
System.out.println("Enter a value.");
inData = stdin.readLine ( );
c = Integer.parseInt (inData);
Celsius cel = new Celsius();
cel.setValue(c);
System.out.println("The converted value is: " + cel.getConvertedValue());
}
华氏度相同。

if ('f' == inData)
{
System.out.println("Enter a value.");
inData = stdin.readLine ( );
f = Integer.parseInt (inData);
Fahrenheit fahr = new Fahrenheit();
fahr.setvalue(f);
System.out.println("The converted value is: " + fahr.getConvertedValue());
}