2015-01-26 130 views
3

我有以下代碼:如何從一個類獲取用戶輸入到另一個

public static void main (String args[]) 
    { 
     Scanner reader = new Scanner(System.in); 
     System.out.println("Enter a Numerator"); 
     int num =reader.nextInt(); 
     System.out.println("Enter a Denominator"); 
     int den =reader.nextInt(); 

     System.out.println("Enter a Numerator and a Denominator"); 
     Rational r = new Rational(num,den); 
     System.out.println(r.getRational() + " equals " +r.getDecimal()); 


    } 
} 

class Rational 
{ 


    double getNum() 
    { 
     return num; 
    } 


    double getDen() 
    { 
     return den; 
    } 

    //getDecimal 
    double getDecimal() 
    { 
     double r = num/den; 
     return r; 
    } 


    String getRational() 
    { 
     return getNum()+"/"+getDen(); 
    } 



     private int getGCF(int n1, int n2) 
     { 
      int rem = 0; 
      int gcf = 0; 
      do 
      { 
       rem = n1 % n2; 
       if (rem == 0) 
       gcf = n2; 
       else 
       { 
        n1 = n2; 
        n2 = rem; 
       } 
      } 
      while (rem != 0); 
      return gcf; 
     } 
} 

代碼的目的是讓用戶輸入一個分子和分母。然後該程序將劃分並給出方程的答案。我需要幫助的是,我一直在讀取代碼行上出現錯誤:Rational r = new Rational(num,den)。我不知道爲什麼。

+1

錯誤說的是什麼? – Dima 2015-01-26 23:59:35

+0

看起來您需要在Rational類中使用一個構造函數,該構造函數接受該類中的num,den和call set集合函數。 – 2015-01-27 00:00:38

+0

你必須詳細閱讀'構造函數和JAVA中的訪問修飾符' – jfun 2015-01-27 00:02:54

回答

0

您忘記在您的Rational-Class中設置構造函數。您嘗試啓動物體:

Rational r = new Rational(num,den); 

但僅僅有標準構造Rational()。爲了實現這一目標,你可以調用這個構造函數,你必須添加此construcotr:

private int num =0; 
private int den =0; 
public Rational(int unum, int uden){ 
    this.num = unum; 
    this.den = uden; 
} 

在您Rational -Class你必須使用則this.numthis.den得到構造設置好的對象。

相關問題