如何从Java中的Main方法调用类?

时间:2015-02-27 01:53:16

标签: java

我正在尝试让用户输入几个数字,然后使用newNumerator = in.nextDouble()显示输出;但我要求将Fraction newNumerator更改为double,如果我这样做,我不得不将其更改为Fraction。 我错过了什么?

 import java.util.Scanner;

 public class FractionTest {

 public static void main(String[] args){

    Fraction newNumerator;
    Fraction newDenominator;


    newNumerator = new Fraction();
    newDenominator = new Fraction();

    Scanner in = new Scanner(System.in);

    System.out.println("Please enter a numerator: ");
    newNumerator = in.nextDouble(); // I get an error here

    System.out.println("Please enter a denominator: ");  
    newDenominator = in.nextDouble(); // I get an error here

    in.close();
 }
}

上面是我的Main(),以下是我的班级。

public class Fraction {

public double numeratorAnswer;
public double denominatorAnswer;

public Fraction() {

}

public double getNumeratorAnswer(){

    return numeratorAnswer;
}

public void setNumeratorAnswer(double newNumerator){

    numeratorAnswer = newNumerator;
}

  public double getDenominatorAnswer(){

    return denominatorAnswer;
}

public void setDenominatorAnswer(double newDenominator){

    denominatorAnswer = newDenominator;
 }
}

4 个答案:

答案 0 :(得分:1)

您试图将double放入Fraction变量,而不是将double放入Fraction

要解决此问题,请使用单个Fraction值并使用setNumeratorAnswersetDenominatorAnswerin.nextDouble()通话。

答案 1 :(得分:0)

您正尝试在以下语句中为Fraction类的对象分配double值:

newNumerator = in.nextDouble(); // I get an error here

System.out.println("Please enter a denominator: ");  
newDenominator = in.nextDouble(); // I get an error here

由于此演员表不可能,因此您需要获取双输入,然后指定Fraction class numeratorAnswer和denominatorAnswer属性。像这样:

double dnewNumerator = in.nextDouble(); 

System.out.println("Please enter a denominator: ");  
double dnewDenominator = in.nextDouble(); 
newNumerator.setNumeratorAnswer(dnewNumerator);
newNumerator.setDenominatorAnswer(dnewDenominator);

我不确定你想要对输入做什么,所以不要在这里添加太多代码,只是展示如何设置Fraction类属性。我不瘦,你需要两个分数对象

答案 2 :(得分:0)

只需稍微更改代码的顺序即可:

Scanner in = new Scanner(System.in);

System.out.println("Please enter a numerator: ");
newNumerator = new Fraction(in.nextDouble());

System.out.println("Please enter a denominator: ");
newDenominator = new Fraction(in.nextDouble());

然后,在你的Fraction类中添加一个构造函数以接收double。

//Update your constructor as..
public Fraction(double numerator, double denominator) {
    this.numeratorAnswer= numerator;
    this.denominatorAnswer= denominator;
}

我想您可能知道为什么会出现评论代码中所述的错误。该错误是由给出不同数据类型的变量引起的。

您的newNumeratornewDenominator的数据类型为Fraction。因此,您不能使用它来接受双值。

在我给出的代码示例中,您会收到double值并将这些值传递给Fraction类的分子&分母。

答案 3 :(得分:0)

您正试图将double变成fraction。您需要获取double的值并将其分配给fraction对象。

我希望这有助于回答你的问题。