public class Rational
{
private int numerator;
private int denominator;
/** default constructor */
Rational()
{ /* implementation not shown */ }
/** Constructs a Rational with numerator n and
* denominator 1. */
Rational(int n)
{ /* implementation not shown */ }
/** Constructs a Rational with specified numerator and
* denominator. */
Rational(int numer, int denom)
{ /* implementation not shown */ }
/** @return numerator */
int numerator()
{ /* implementation not shown */ }
/** @return denominator */
int denominator()
{ /* implementation not shown */ }
/** Returns (this + r). Leaves this unchanged.
* @return this rational number plus r
* @param r a rational number to be added to this Rational
*/
public Rational plus(Rational r)
{ /* implementation not shown */ }
//Similarly for times, minus, divide
...
/** Ensures denominator > 0. */
private void fixSigns()
{ /* implementation not shown */ }
/** Ensures lowest terms. */
private void reduce()
{ /* implementation not shown */ }
}
The method reduce() is not a public method because
(A) methods whose return type is void cannot be public.
(B) methods that change this cannot be public.
(C) the reduce() method is not intended for use by clients of the Rational class.
(D) the reduce() method is intended for use only by clients of the Rational class.
(E) the reduce() method uses only the private data fields of the Rational class.