i in first semester programming java , started getting oop , ran small problem code (no surprise). need masters figure out missing, know i'm pretty close answer. given fraction driver fraction class , need write class myself. in driver has stay way is.
here driver:
import java.util.scanner; public class fractiondemo { public static void main(string[] args) { scanner stdin = new scanner(system.in); fraction c, d, x; // fraction objects system.out.println("enter numerator; denominator."); c = new fraction(stdin.nextint(), stdin.nextint()); c.print(); system.out.println("enter numerator; denominator."); d = new fraction(stdin.nextint(), stdin.nextint()); d.print(); x = new fraction(); // create fraction number 0 system.out.println("sum:"); x.add(c).add(d); x.print(); x.printasdouble(); x = new fraction(1, 1); // create fraction number 1 system.out.println("product:"); x.multiply(c).multiply(d); x.print(); x.printasdouble(); system.out.println("enter numerator; denominator."); x = new fraction(stdin.nextint(), stdin.nextint()); x.printasdouble(); } } // end main
here fraction class have.
public class fraction { private int numerator; // numerator of fraction private int denominator; // denominator of fraction //************************************************** public void fraction() { numerator = 0; denominator = 1; } // default constructor public void fraction(int n, int d) { numerator = n; denominator = d; } //two parameter constructor public void print() { system.out.println(numerator + "/" + denominator); } //print fraction n/d public void printasdouble() { system.out.printf("%f", numerator/denominator); } //print fraction double public fraction add(fraction other) { //add // calling object = calling obj + parameter int n = this.numerator * other.denominator + this.denominator * other.numerator; int d = this.denominator * other.denominator; this.numerator = n; this.denominator = d; return this; } //multiply public fraction multiply(fraction other) { int n = this.numerator * other.numerator; int d = this.denominator * other.denominator; this.numerator = n; this.denominator = d; return this; } } // end fraction class
this error message getting:
fractiondemo.java:19: error: constructor fraction in class fraction cannot applied given types; c = new fraction(stdin.nextint(), stdin.nextint()); ^ required: no arguments found: int,int reason: actual , formal argument lists differ in length fractiondemo.java:23: error: constructor fraction in class fraction cannot applied given types; d = new fraction(stdin.nextint(), stdin.nextint()); ^ required: no arguments found: int,int reason: actual , formal argument lists differ in length fractiondemo.java:35: error: constructor fraction in class fraction cannot applied given types; x = new fraction(1, 1); // create fraction number 1 ^ required: no arguments found: int,int reason: actual , formal argument lists differ in length fractiondemo.java:44: error: constructor fraction in class fraction cannot applied given types; x = new fraction(stdin.nextint(), stdin.nextint()); ^ required: no arguments found: int,int reason: actual , formal argument lists differ in length 4 errors tool completed exit code 1
you declared constructors this:
public void fraction() public void fraction(int n, int d)
constructors not have return types. declare them:
public fraction() public fraction(int n, int d)