//************************************************ // Program to test the poly method // L.Aamodt 4/18/16 // (goal: demonstrate overloading.) //************************************************ class polynomial { int a,b,c,order; double da,db,dc; // First the constructors polynomial() { System.out.println("constructor, no parameters given"); order = 0; } polynomial(int pa, int pb){ System.out.println("ax + b constructor, integer"); a = pa; b = pb; order = 1; } polynomial(int pa, int pb, int pc){ System.out.println("ax^2 + bx + c constructor, integer"); a = pa; b = pb; c = pc; order = 2; } polynomial(double pa, double pb){ System.out.println("ax + b constructor, double"); da = pa; db = pb; order = 1; } polynomial(double pa, double pb, double pc){ System.out.println("ax^2 + bx + c constructor, double"); da = pa; db = pb; dc = pc; order = 2; } // Now the methods int poly(int x){ int result=0; switch(order){ case 0: System.out.println("error 0 (caused by object w/o parameters)"); break; case 1: result = a*x + b; break; case 2: result = a*x*x + b*x + c; break; default: System.out.println("error 1 (caused by invalid order value)"); } return result; } double poly(double x){ double result2=0; switch(order){ case 0: System.out.println("error 0.0 (caused by an object w/o parameters)"); break; case 1: result2 = da*x + db; break; case 2: result2 = da*x*x + db*x + dc; break; default: System.out.println("error 1.0 (caused by object w/o parameters)"); } return result2; } } public class poly_test { public static void main(String[] args) { int x = 4; double y = 4.0; polynomial p0 = new polynomial(); // no parameters polynomial p1 = new polynomial(3,4); polynomial p2 = new polynomial(5,2,3); polynomial p3 = new polynomial(3.0,4.0); polynomial p4 = new polynomial(5.0,2.0,3.0); System.out.println("\n Now the calculated polynomial values\n"); System.out.println(p0.poly(x) + " (object w/o parameters)"); System.out.println(p1.poly(x) + " (int,int)"); System.out.println(p2.poly(x) + " (int,int,int)"); System.out.println(p3.poly(y) + " (double,double)"); System.out.println(p4.poly(y) + " (double,double,double)"); } }