Java Problem

  • From: "Gilbert Neiva" <gneiva@xxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Sun, 14 Nov 2010 19:02:07 -0700

I am trying to write a program in which it adds two fractions together. I made 
a fraction class which consists of the following:

public class Fraction

{

static int numerator; // Holds numerator

static int denominator; // Holds denominator


// Constructor passes int values from num and denum to numerator, and 
denominator.

public Fraction(int num, int denom)

{

numerator = num;

denominator = denom;

}


// Default constructor sets data fields to 0

public Fraction()

{

numerator = 0;

denominator = 0;

}


// Methods return values of numerator and denominator

public static int getNum() { return numerator; }

public static int getDenom() { return denominator; }


// Returns printed formatted string

public static String toString()

{

return numerator "/" denominator; 

}


// Adds two fractions together

public static Fraction add(Fraction frac1)

{

Fraction fraction_1 = new Fraction();

Fraction fraction_2 = new Fraction();

Fraction result = new Fraction();

fraction_1.denominator = denominator * frac1.denominator;

fraction_1.numerator = numerator * frac1.denominator;

fraction_2.denominator = frac1.denominator * denominator;

fraction_2.numerator = frac1.numerator * denominator;

result.numerator = fraction_1.numerator + fraction_2.numerator;

return result;

}

} // End of class



My driver class, the class that has the main method has the following.



import java.util.Scanner; // Import Scanner class


// Class FractionDriver inputs two fractions and adds them together

public class FractionDriver

{

// Declare data fields

static int numerator; // Holds numerator

static int denominator; // Holds denominator

static Scanner inData = new Scanner(System.in); // Scanner object


public static void main(String[] args)

{

// Declare local data fields

Fraction frac1 = new Fraction();

Fraction frac2 = new Fraction();


// Ask user for numerators and denominators.

System.out.println("Enter numerator for fraction 1:");

numerator = inData.nextInt();

System.out.println("Enter denominator for fraction 1:");

denominator = inData.nextInt();

frac1 = new Fraction(numerator, denominator);

System.out.println("Fraction 1 is " + frac1 + ".");

System.out.println("Enter numerator for fraction 2:");

numerator = inData.nextInt();

System.out.println("Enter denominator for fraction 2:");

denominator = inData.nextInt();

frac2 = new Fraction(numerator, denominator);

System.out.println("Fraction 2 is " + frac2 + ".");

System.out.println(frac1 + " + " + frac2 + " = " +

frac1.add(frac2));

}

}



When I try to compile it with J2SDK console, I get the following error.



C:\Users\user\Desktop\COMP268\Practice\Fractions\src>javac *.java
Fraction.java:28: ';' expected
return numerator "/" denominator;
^
1 error
C:\Users\user\Desktop\COMP268\Practice\Fractions\src>



The Fraction.java file is the class that defines a fraction object. I looked in 
the source code for that file, and I cannot find any lines of code that need a 
cemmi-colon. When I run the program with Eclipse, I get the following.



Enter numerator for fraction 1:

3

Enter denominator for fraction 1:

5

Fraction 1 is Fraction@ca0b6.

Enter numerator for fraction 2:

2

Enter denominator for fraction 2:

4

Fraction 2 is Fraction@10b30a7.

Fraction@ca0b6 + Fraction@10b30a7 = Fraction@1a758cb



Eclipse does warn me that there are errors in the application before running 
it. Can someone help me with this issue? What am I doing wrong?



Gilbert Neiva


Other related posts: