2016-03-30 3 views
-2

Итак, нам нужно создать класс Rational, который выполняет следующие действия. Создайте проект на Java, который включает класс Rational. Класс представляет собой Rational numbers. Он должен иметь только 2 поля num и denom. Он должен иметь следующие общедоступные методы (и любые другие частные методы):Рациональный класс для java не может запустить программу

  • Конструктор, который принимает значение num и denom (в указанном порядке) в качестве начальных значений поля. Если denom равно 0, установите число 0/1.
  • аксессор для NUM (GetNum)
  • аксессор для DENOM (getDenom)
  • Метод ToString, который возвращает строку вида «Num/DENOM» (без пробелов), где Num и DENOM имеют сохраненные значения
  • Метод добавления, который принимает Rational-номер r и возвращает Rational-число, которое является результатом добавления r к этому Rational-числу. Он не должен менять это рациональное число.
  • (Дополнительный кредит - 2 балла) Метод уменьшения без аргументов, который уменьшает это Rational до самой низкой формы.

У меня есть код, который я сделал в Intellij IDEA, но это не позволит мне запустить программу. Я знаю, что я получаю ошибки для большинства вещей, но я считаю, что это просто потому, что я не помещаю что-то в нужное место или не оставляю что-то. Это то, что у меня есть до сих пор.

import java.util.Scanner; 

public class Rational { 

    private int num; 
    private int den; //fields 

    static Scanner userInput = new Scanner(System.in); 

    public static void main(String[] args) { 

     System.out.println("") 

     public Rational(int n, int d){ 

      num = n; 
      den = d; 

      if (d == 0) { 
       num = 0; 
       den = 1; 

       System.out.println("Denominator is 0. Enter a number other than 0 next time."); 

      }//close if 

      int g = gcd(num, den); 
      num = n/g; 
      den = d/g; 

     }//close Rational 

    public String toString() { 

     if (den == 1) { 
      return num + ""; 

     } else { 

      return num + "/" + den; 

     } 

    }//close toString 

    private Rational add(Rational r) { 

     int newNum = (this.num * r.den) + (r.num * this.den); 
     int newDen = r.den * this.den; 
     return new Rational(newNum, newDen); 

    }//close add 

    private static int gcd(int m, int n) { 

     if (0 == n) { 
      return m; 

     } else { 

      return gcd(n, m % n); 

     }//close else 

    }//close gcd 

}//close main 

}//close class 
+0

Что означает «не позволит мне запустить программу»? Что происходит при запуске? –

+0

Почему вы не можете просто прочитать сообщение об ошибке? 'file.java:12: error: ';' ожидаемый System.out.println ("") ' Довольно очевидно, почему это не удается. –

+0

@SoraweePorncharoenwase Где вы нашли сообщение об ошибке? Я ничего не вижу на этом посту. В любом случае, спасибо за информацию. –

ответ

0
 public Rational(int n, int d){ // put Your Constructor Out of the main First 
     num = n; 
     den = d; 

     if (d == 0) { 
      num = 0; 
      den = 1; 
      System.out.println("Denominator is 0. Enter a number other than 0 next time."); 
     }//close if 
     int g = gcd(num, den); 
     num = n/g; 
     den = d/g; 
     }//close Rational 
    } 

    public String toString() { //put methods Outside of Main 
       if (den == 1) { 
        return num + ""; 
       } else { 

        return num + "/" + den; 

       } 

      }//close toString 

    private Rational add(Rational r) { //put methods Outside of Main 

      int newNum = (this.num * r.den) + (r.num * this.den); 
      int newDen = r.den * this.den; 
      return new Rational(newNum, newDen); 
    }//close add 

    private static int gcd(int m, int n) { //put methods Outside of Main 
       if (0 == n) 
        return m; 
       else 
        return gcd(n, m % n);   
      }//close gcd 

    public static void main (String [] args) { //here is your Main Method. 

      System.out.println(""); 

      // call Your Methods Accordingly. 

     } // main Closed 
    } //class Closed 
  1. Вы поставили Конструктор в main метод. Он должен быть вне основного блока.
  2. Каждый метод, который вы определили, существует в методе main. Опять ошибка компиляции.
  3. Вы можете вызвать эти методы изнутри main либо с использованием любого класса object (если метод экземпляра), либо напрямую с помощью имени класса (если используется статический метод).
+0

*** Объясните *** проблему. Не просто оставляйте кучу кода для кого-то, кто заберет. – Makoto

+0

Я также предоставляю комментарии, чтобы объяснить проблему @Makoto Спасибо. Я добавил проблему как «текст» тоже. –

+0

@VikrantKashyap спасибо. Я, как вы можете сказать, новичок в Java, новичок в программировании в целом, и мой класс не научил нас использовать настоящий компилятор, такой как IntelliJ IDEA, поскольку мы использовали BlueJ, но я хотел изучить реальное программирование Я мог бы узнать больше о себе. Благодаря! – mrphotochalupas

Смежные вопросы